diff --git a/mu_map/data/datasets.py b/mu_map/data/datasets.py
index deadaed33cf90c62003c3e6efd25710ab4427af4..d0ae39c45aeab9744956d213dd3196c31d740b47 100644
--- a/mu_map/data/datasets.py
+++ b/mu_map/data/datasets.py
@@ -46,7 +46,6 @@ class MuMapDataset(Dataset):
         bed_contours_file: Optional[str] = DEFAULT_BED_CONTOURS_FILENAME,
         discard_mu_map_slices: bool = True,
         align: bool = True,
-        pathes_per_image
     ):
         super().__init__()
 
@@ -73,12 +72,13 @@ class MuMapDataset(Dataset):
         self.pre_load_images()
 
     def pre_load_images(self):
+        print("Pre-loading images ...", end="\r")
         for i in range(len(self.table)):
-            row = self.table.iloc[index]
+            row = self.table.iloc[i]
             _id = row["id"]
 
             mu_map_file = os.path.join(self.dir_images, row[headers.file_mu_map])
-            mu_map = pydicom.dcmread(mu_map_file)
+            mu_map = pydicom.dcmread(mu_map_file).pixel_array
             if self.discard_mu_map_slices:
                 mu_map = discard_slices(row, mu_map)
             if self.bed_contours:
@@ -88,10 +88,11 @@ class MuMapDataset(Dataset):
             self.mu_maps[_id] = mu_map
 
             recon_file = os.path.join(self.dir_images, row[headers.file_recon_nac_nsc])
-            recon = pydicom.dcmread(recon_file)
+            recon = pydicom.dcmread(recon_file).pixel_array
             if self.align:
                 recon = align_images(recon, mu_map)
             self.reconstructions[_id] = recon
+        print("Pre-loading images done!")
 
     def __getitem__(self, index: int):
         row = self.table.iloc[index]
@@ -107,15 +108,15 @@ class MuMapDataset(Dataset):
         # mu_map = pydicom.dcmread(mu_map_file).pixel_array
 
         # if self.discard_mu_map_slices:
-            # mu_map = discard_slices(row, mu_map)
+        # mu_map = discard_slices(row, mu_map)
 
         # if self.bed_contours:
-            # bed_contour = self.bed_contours[row["id"]]
-            # for i in range(mu_map.shape[0]):
-                # mu_map[i] = cv.drawContours(mu_map[i], [bed_contour], -1, 0.0, -1)
+        # bed_contour = self.bed_contours[row["id"]]
+        # for i in range(mu_map.shape[0]):
+        # mu_map[i] = cv.drawContours(mu_map[i], [bed_contour], -1, 0.0, -1)
 
         # if self.align:
-            # recon = align_images(recon, mu_map)
+        # recon = align_images(recon, mu_map)
 
         return recon, mu_map
 
@@ -129,21 +130,43 @@ if __name__ == "__main__":
     import argparse
 
     import cv2 as cv
-    
+
     from mu_map.util import to_grayscale, COLOR_WHITE
 
-    parser = argparse.ArgumentParser(description="Visualize the images of a MuMapDataset", formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    parser.add_argument("dataset_dir", type=str, help="the directory from which the dataset is loaded")
-    parser.add_argument("--unaligned", action="store_true", help="do not perform center alignment of reconstruction an mu-map slices")
-    parser.add_argument("--show_bed", action="store_true", help="do not remove the bed contour from the mu map")
-    parser.add_argument("--full_mu_map", action="store_true", help="do not remove broken slices of the mu map")
+    parser = argparse.ArgumentParser(
+        description="Visualize the images of a MuMapDataset",
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+    )
+    parser.add_argument(
+        "dataset_dir", type=str, help="the directory from which the dataset is loaded"
+    )
+    parser.add_argument(
+        "--unaligned",
+        action="store_true",
+        help="do not perform center alignment of reconstruction an mu-map slices",
+    )
+    parser.add_argument(
+        "--show_bed",
+        action="store_true",
+        help="do not remove the bed contour from the mu map",
+    )
+    parser.add_argument(
+        "--full_mu_map",
+        action="store_true",
+        help="do not remove broken slices of the mu map",
+    )
     args = parser.parse_args()
 
     align = not args.unaligned
     discard_mu_map_slices = not args.full_mu_map
     bed_contours_file = None if args.show_bed else DEFAULT_BED_CONTOURS_FILENAME
 
-    dataset = MuMapDataset(args.dataset_dir, align=align, discard_mu_map_slices=discard_mu_map_slices, bed_contours_file=bed_contours_file)
+    dataset = MuMapDataset(
+        args.dataset_dir,
+        align=align,
+        discard_mu_map_slices=discard_mu_map_slices,
+        bed_contours_file=bed_contours_file,
+    )
 
     wname = "Dataset"
     cv.namedWindow(wname, cv.WINDOW_NORMAL)
@@ -156,7 +179,9 @@ if __name__ == "__main__":
         _image = to_grayscale(image[_slice], min_val=image.min(), max_val=image.max())
         _image = cv.resize(_image, (1024, 1024), cv.INTER_AREA)
         _text = f"{str(_slice):>{len(str(image.shape[0]))}}/{str(image.shape[0])}"
-        _image = cv.putText(_image, _text, (0, 30), cv.FONT_HERSHEY_SIMPLEX, 1, COLOR_WHITE, 3)
+        _image = cv.putText(
+            _image, _text, (0, 30), cv.FONT_HERSHEY_SIMPLEX, 1, COLOR_WHITE, 3
+        )
         return _image
 
     def combine_images(images, slices):
@@ -189,8 +214,8 @@ if __name__ == "__main__":
                 exit(0)
             elif key == ord("p"):
                 timeout = 0 if timeout > 0 else 100
-            elif key == 83: # right arrow key
+            elif key == 83:  # right arrow key
                 continue
-            elif key == 81: # left arrow key
+            elif key == 81:  # left arrow key
                 ir = max(ir - 2, 0)
                 im = max(im - 2, 0)