diff --git a/bob/ip/binseg/configs/datasets/chasedb1.py b/bob/ip/binseg/configs/datasets/chasedb1.py
index 2b09a757035ce4619a275167b2213bf4347c7761..cdf8915e54a2e8533971b11a6f400011208a523a 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1.py
@@ -24,18 +24,15 @@ bright strip running down the centre known as the central vessel reflex.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Crop(0, 18, 960, 960),  #(upper, left, height, width)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb11024.py b/bob/ip/binseg/configs/datasets/chasedb11024.py
index be005fd3d398851f7b3def00a668251da3e4b752..cc762df6676721c227a368fce614a071897b4431 100644
--- a/bob/ip/binseg/configs/datasets/chasedb11024.py
+++ b/bob/ip/binseg/configs/datasets/chasedb11024.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(0, 18, 960, 960),
         Resize(1024),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb11168.py b/bob/ip/binseg/configs/datasets/chasedb11168.py
index 92ffccfa4ea9cdf67e345bf059770d28658e98ab..e756d6ef18cea6ea542581dcaa9db5d2bf60e2bc 100644
--- a/bob/ip/binseg/configs/datasets/chasedb11168.py
+++ b/bob/ip/binseg/configs/datasets/chasedb11168.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(140, 18, 680, 960),
         Resize(1168),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb1544.py b/bob/ip/binseg/configs/datasets/chasedb1544.py
index 16639aefef2d0ce8ddfe33f2594ec5e4f201b168..d6c389e234952eff4ac2814fcbba5a397a02da96 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1544.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1544.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize(544),
         Crop(0, 12, 544, 544),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb1608.py b/bob/ip/binseg/configs/datasets/chasedb1608.py
index adfd977743f9082c4ebd1452087565295ab2e606..e01d939db4f2ede0b1241ea823c7f6bbd987ebd5 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1608.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1608.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((829, 960)),
         Resize(608),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb1test.py b/bob/ip/binseg/configs/datasets/chasedb1_test.py
similarity index 79%
rename from bob/ip/binseg/configs/datasets/chasedb1test.py
rename to bob/ip/binseg/configs/datasets/chasedb1_test.py
index 0504acb39c9d18860cf35705c850552c249b05e9..945096cfcc393254834d4b85744eee105e0c9947 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1test.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1_test.py
@@ -23,15 +23,10 @@ bright strip running down the centre known as the central vessel reflex.
 * Split reference: [CHASEDB1-2012]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
-        Crop(0, 18, 960, 960),  #(upper, left, height, width)
-        ToTensor(),
-    ]
-)
+from bob.ip.binseg.data.transforms import Crop
+_transforms = [Crop(0, 18, 960, 960)]  #(upper, left, height, width)
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drivestareiostarhrf960.py b/bob/ip/binseg/configs/datasets/covd_chasedb1.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivestareiostarhrf960.py
rename to bob/ip/binseg/configs/datasets/covd_chasedb1.py
diff --git a/bob/ip/binseg/configs/datasets/drivestareiostarhrf960sslchase.py b/bob/ip/binseg/configs/datasets/covd_chasedb1_ssl.py
similarity index 84%
rename from bob/ip/binseg/configs/datasets/drivestareiostarhrf960sslchase.py
rename to bob/ip/binseg/configs/datasets/covd_chasedb1_ssl.py
index 2e96cecfaf2b08fa0ea4f7219640501942c82170..4d73e6a85228f2fc3204e7351f3a0b10497f901f 100644
--- a/bob/ip/binseg/configs/datasets/drivestareiostarhrf960sslchase.py
+++ b/bob/ip/binseg/configs/datasets/covd_chasedb1_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of STARE, CHASE-DB1, IOSTAR
 vessel and HRF (with annotated samples) and CHASE-DB1 without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivestareiostarhrf960 import dataset as _labelled
+from bob.ip.binseg.configs.datasets.covd_chasedb1 import dataset as _labelled
 from bob.ip.binseg.configs.datasets.chasedb1 import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544.py b/bob/ip/binseg/configs/datasets/covd_drive.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544.py
rename to bob/ip/binseg/configs/datasets/covd_drive.py
diff --git a/bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544ssldrive.py b/bob/ip/binseg/configs/datasets/covd_drive_ssl.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544ssldrive.py
rename to bob/ip/binseg/configs/datasets/covd_drive_ssl.py
index c4ce12ca8f488bf37903b4dccd15ba7e51dd4333..a26a81e76f3453fdcdfa93e676ca00e142591e8d 100644
--- a/bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544ssldrive.py
+++ b/bob/ip/binseg/configs/datasets/covd_drive_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of STARE, CHASE-DB1, IOSTAR
 vessel and HRF (with annotated samples) and DRIVE without labels.
 """
 
-from bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544 import dataset as _labelled
+from bob.ip.binseg.configs.datasets.covd_drive import dataset as _labelled
 from bob.ip.binseg.configs.datasets.drive import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168.py b/bob/ip/binseg/configs/datasets/covd_hrf.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168.py
rename to bob/ip/binseg/configs/datasets/covd_hrf.py
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168sslhrf.py b/bob/ip/binseg/configs/datasets/covd_hrf_ssl.py
similarity index 69%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168sslhrf.py
rename to bob/ip/binseg/configs/datasets/covd_hrf_ssl.py
index 243651968ebedcc2458c488eaae2bccc0b253276..71658d04d2dad5b09ae60116d02e13fd636803f9 100644
--- a/bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168sslhrf.py
+++ b/bob/ip/binseg/configs/datasets/covd_hrf_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of STARE, CHASE-DB1, IOSTAR
 vessel and CHASE-DB1 (with annotated samples) and HRF without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168 import dataset as _labelled
-from bob.ip.binseg.configs.datasets.hrf1168 import dataset as _unlabelled
+from bob.ip.binseg.configs.datasets.covd_hrf import dataset as _labelled
+from bob.ip.binseg.configs.datasets.hrf_1168 import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024.py b/bob/ip/binseg/configs/datasets/covd_iostar_vessel.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024.py
rename to bob/ip/binseg/configs/datasets/covd_iostar_vessel.py
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024ssliostar.py b/bob/ip/binseg/configs/datasets/covd_iostar_vessel_ssl.py
similarity index 68%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024ssliostar.py
rename to bob/ip/binseg/configs/datasets/covd_iostar_vessel_ssl.py
index 5dbd5b215809d01a1c164a8e14681098074f819d..6357d7109fd3934406872c2bc2fc3c55cf5f9732 100644
--- a/bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024ssliostar.py
+++ b/bob/ip/binseg/configs/datasets/covd_iostar_vessel_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of DRIVE, STARE, CHASE-DB1, and
 HRF (with annotated samples) and IOSTAR without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024 import dataset as _labelled
-from bob.ip.binseg.configs.datasets.iostarvessel import dataset as _unlabelled
+from bob.ip.binseg.configs.datasets.covd_iostar_vessel import dataset as _labelled
+from bob.ip.binseg.configs.datasets.iostar_vessel import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608.py b/bob/ip/binseg/configs/datasets/covd_stare.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608.py
rename to bob/ip/binseg/configs/datasets/covd_stare.py
diff --git a/bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608sslstare.py b/bob/ip/binseg/configs/datasets/covd_stare_ssl.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608sslstare.py
rename to bob/ip/binseg/configs/datasets/covd_stare_ssl.py
index 767c0e189e33bc9db2989f0a3f18f30d86c36804..ff0fce683463c325f361be758107797555872348 100644
--- a/bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608sslstare.py
+++ b/bob/ip/binseg/configs/datasets/covd_stare_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of DRIVE, CHASE-DB1, IOSTAR
 vessel and HRF (with annotated samples) and STARE without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608 import dataset as _labelled
+from bob.ip.binseg.configs.datasets.covd_stare import dataset as _labelled
 from bob.ip.binseg.configs.datasets.stare import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/csv.py b/bob/ip/binseg/configs/datasets/csv.py
index 410008f85b59c64acb7614fec2f36f3e407e2a6f..f6aec54871b291bc7e99b1d99353702528ff8ab9 100644
--- a/bob/ip/binseg/configs/datasets/csv.py
+++ b/bob/ip/binseg/configs/datasets/csv.py
@@ -66,20 +66,15 @@ See:
 
 """
 
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.csvdataset import CSVDataset
-
 # add your transforms below - these are just examples
-# keep the ``ToTensor()`` transform at the end
-transforms = Compose(
-    [
+from bob.ip.binseg.data.transforms import *
+_transforms = [
         #CenterCrop((544, 544)),
         #RandomHFlip(),
         #RandomVFlip(),
         #RandomRotation(),
         #ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-#dataset = CSVDataset("<path.csv>", check_available=False, transform=transforms)
+from bob.ip.binseg.data.csvdataset import CSVDataset
+#dataset = CSVDataset("<path.csv>", check_available=False, transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drionsdb.py b/bob/ip/binseg/configs/datasets/drionsdb.py
index 7b1730db3050b623c46da8726f621b504564cbb8..fdbbac7782d448c7aa02f7336987afadbda8df2b 100644
--- a/bob/ip/binseg/configs/datasets/drionsdb.py
+++ b/bob/ip/binseg/configs/datasets/drionsdb.py
@@ -25,19 +25,16 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
+_transforms = [
         Pad((4, 8, 4, 8)),  #(left, top, right, bottom)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = DRIONS(protocol="default")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drionsdbtest.py b/bob/ip/binseg/configs/datasets/drionsdb_test.py
similarity index 89%
rename from bob/ip/binseg/configs/datasets/drionsdbtest.py
rename to bob/ip/binseg/configs/datasets/drionsdb_test.py
index 8b1a0c87feeae25b30dfa13212fa4607d31a7353..01cfccd76eddfbbf04a4e49440af91dcd163fd06 100644
--- a/bob/ip/binseg/configs/datasets/drionsdbtest.py
+++ b/bob/ip/binseg/configs/datasets/drionsdb_test.py
@@ -24,10 +24,10 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose([Pad((4, 8, 4, 8)), ToTensor()])
+_transforms = [Pad((4, 8, 4, 8))]
 
 # bob.db.dataset init
 bobdb = DRIONS(protocol="default")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1cup.py b/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
similarity index 90%
rename from bob/ip/binseg/configs/datasets/dristhigs1cup.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_cup.py
index 485a5e686b606a7f2d5adc9dea4e3cff2da4f7fe..4780d6f0daff6d193107b24fae3caa58f4a06eb9 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1cup.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
@@ -27,19 +27,16 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
+_transforms = [
         CenterCrop((1760, 2048)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_cup")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1cuptest.py b/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
similarity index 85%
rename from bob/ip/binseg/configs/datasets/dristhigs1cuptest.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
index 511b52731208d332265e2a3e5432f04b697edde0..e88c988a81998c2895f567a74d1101ef39651452 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1cuptest.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
@@ -22,15 +22,15 @@ and notching information.
 """
 
 from bob.db.drishtigs1 import Database as DRISHTI
-from bob.ip.binseg.data.transforms import *
+from bob.ip.binseg.data.transforms import CenterCrop
 from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose([CenterCrop((1760, 2048)), ToTensor()])
+_transforms = [CenterCrop((1760, 2048))]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_cup")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1od.py b/bob/ip/binseg/configs/datasets/dristhigs1_od.py
similarity index 90%
rename from bob/ip/binseg/configs/datasets/dristhigs1od.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_od.py
index 5c46540a32bde4da2c33932ea50d78f291cc2d01..025454180895418c38dfaef12b5310c22a6688d9 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1od.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_od.py
@@ -27,19 +27,16 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
+_transforms = [
         CenterCrop((1760, 2048)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_od")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1odtest.py b/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
similarity index 85%
rename from bob/ip/binseg/configs/datasets/dristhigs1odtest.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
index e5e5c36a3dd8ce9384a120b9f40c99cf0a66306e..0e05f2fbce4412f85377248def3bc321598b2931 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1odtest.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
@@ -22,15 +22,15 @@ and notching information.
 """
 
 from bob.db.drishtigs1 import Database as DRISHTI
-from bob.ip.binseg.data.transforms import *
+from bob.ip.binseg.data.transforms import CenterCrop
 from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose([CenterCrop((1760, 2048)), ToTensor()])
+_transforms = [CenterCrop((1760, 2048))]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_od")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive.py b/bob/ip/binseg/configs/datasets/drive.py
index 5e5b49865bf2fd8e871999b9221068602e95400a..2690b671d61848997735e5ff711137367d5869e6 100644
--- a/bob/ip/binseg/configs/datasets/drive.py
+++ b/bob/ip/binseg/configs/datasets/drive.py
@@ -14,18 +14,15 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         CenterCrop((544, 544)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive1024.py b/bob/ip/binseg/configs/datasets/drive1024.py
index f27ac3b7601c4f062735bb3d58667fbb76c31cbd..f296c5eae66a0207fa737c41cc1e6e4b944ce601 100644
--- a/bob/ip/binseg/configs/datasets/drive1024.py
+++ b/bob/ip/binseg/configs/datasets/drive1024.py
@@ -14,19 +14,16 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((540, 540)),
         Resize(1024),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive1168.py b/bob/ip/binseg/configs/datasets/drive1168.py
index ce84af98853e2ab7da8363e7f324e7c6cfdf19a6..29328381a576baf293bf454d762e726a1c6f2fe5 100644
--- a/bob/ip/binseg/configs/datasets/drive1168.py
+++ b/bob/ip/binseg/configs/datasets/drive1168.py
@@ -14,8 +14,7 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(75, 10, 416, 544),
         Pad((21, 0, 22, 0)),
@@ -23,11 +22,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive608.py b/bob/ip/binseg/configs/datasets/drive608.py
index d579420531173b75238e86a22fd65fc1632d5acc..efc0ae269e5271421e0ffba0319ee915cd150924 100644
--- a/bob/ip/binseg/configs/datasets/drive608.py
+++ b/bob/ip/binseg/configs/datasets/drive608.py
@@ -14,8 +14,7 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((470, 544)),
         Pad((10, 9, 10, 8)),
@@ -23,11 +22,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive960.py b/bob/ip/binseg/configs/datasets/drive960.py
index a37f54b0fe64ab6b1afbd8d98df683eccad81ed2..4a2bbe02c8745b55a0003421f5b6ff3b50e4583a 100644
--- a/bob/ip/binseg/configs/datasets/drive960.py
+++ b/bob/ip/binseg/configs/datasets/drive960.py
@@ -14,19 +14,16 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((544, 544)),
         Resize(960),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drivetest.py b/bob/ip/binseg/configs/datasets/drive_test.py
similarity index 63%
rename from bob/ip/binseg/configs/datasets/drivetest.py
rename to bob/ip/binseg/configs/datasets/drive_test.py
index 9315e59af7d6834dabcf9886a74a12a248ce0ab1..d7f49c4b123a386d317084828f3178cfc8a5f870 100644
--- a/bob/ip/binseg/configs/datasets/drivetest.py
+++ b/bob/ip/binseg/configs/datasets/drive_test.py
@@ -13,10 +13,10 @@ segmentation of blood vessels in retinal images.
 * Split reference: [DRIVE-2004]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([CenterCrop((544, 544)), ToTensor()])
+from bob.ip.binseg.data.transforms import CenterCrop
+_transforms = [CenterCrop((544, 544))]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/folder.py b/bob/ip/binseg/configs/datasets/folder.py
index d34c2797cfa8eed74a10a5c46b243fd683a35625..06e1e65a6335f7feb0a75a192cc13d903e6d56de 100644
--- a/bob/ip/binseg/configs/datasets/folder.py
+++ b/bob/ip/binseg/configs/datasets/folder.py
@@ -36,16 +36,11 @@ configuration that was used to train models and try to match it as well as
 possible.
 """
 
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.folderdataset import FolderDataset
-
 # add your transforms below - these are just examples
-# keep the ``ToTensor()`` transform at the end
-transforms = Compose(
-    [
+from bob.ip.binseg.data.transforms import *
+_transforms = [
         #CenterCrop((544, 544)),
-        ToTensor(),
     ]
-)
 
-#dataset = FolderDataset("<path.csv>", glob="*.*", transform=transforms)
+from bob.ip.binseg.data.folderdataset import FolderDataset
+#dataset = FolderDataset("<path.csv>", glob="*.*", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf.py b/bob/ip/binseg/configs/datasets/hrf.py
index 95df5b007538576ab45f8d050daf0ccbd5fefbd3..fb7316121129d7bfdf5ed5a8b0f52bc717498a9f 100644
--- a/bob/ip/binseg/configs/datasets/hrf.py
+++ b/bob/ip/binseg/configs/datasets/hrf.py
@@ -15,18 +15,15 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Crop(0, 108, 2336, 3296),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf1024.py b/bob/ip/binseg/configs/datasets/hrf1024.py
index a1d7cb36f144ccd7741886c490fe01b9d7585dc4..00f79b2901c0765dd418d85aa62c9c2d50eee152 100644
--- a/bob/ip/binseg/configs/datasets/hrf1024.py
+++ b/bob/ip/binseg/configs/datasets/hrf1024.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((0, 584, 0, 584)),
-        Resize((1024)),
+        Resize(1024),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf544.py b/bob/ip/binseg/configs/datasets/hrf544.py
index d45b424728e8d01ede9ab33c2b7ffaf4034ec40a..a1adf81b70ac2eea2ccb30d8e70e1af0ad5cd73f 100644
--- a/bob/ip/binseg/configs/datasets/hrf544.py
+++ b/bob/ip/binseg/configs/datasets/hrf544.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize((363)),
         Pad((0, 90, 0, 91)),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf544test.py b/bob/ip/binseg/configs/datasets/hrf544test.py
deleted file mode 100644
index 16102bf817e8141be1993f8ff617316d4cb9753d..0000000000000000000000000000000000000000
--- a/bob/ip/binseg/configs/datasets/hrf544test.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""HRF (test set) for Vessel Segmentation
-
-The database includes 15 images of each healthy, diabetic retinopathy (DR), and
-glaucomatous eyes.  It contains 45 eye fundus images with a resolution of 3304
-x 2336. One set of ground-truth vessel annotations is available.
-
-* Reference: [HRF-2013]_
-* Original resolution (height x width): 2336 x 3504
-* Configuration resolution: 544 x 544 (after specific padding and rescaling)
-* Test samples: 30
-* Split reference: [ORLANDO-2017]_
-"""
-
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
-        Resize((363)),
-        Pad((0, 90, 0, 91)),
-        ToTensor(),
-    ]
-)
-
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
-from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["test"],
-        transform=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf608.py b/bob/ip/binseg/configs/datasets/hrf608.py
index a1d4fbf900141676fe470eebb075d3a5a390f86a..5404a51484e9669c4acbb42811919cd5899ca449 100644
--- a/bob/ip/binseg/configs/datasets/hrf608.py
+++ b/bob/ip/binseg/configs/datasets/hrf608.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((0, 345, 0, 345)),
         Resize(608),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf960.py b/bob/ip/binseg/configs/datasets/hrf960.py
index 2dd12ef62976ec0994be4eb2925f7f5e371177c5..d7c9245687b4573a1b758e2fc1634d1956b6fb8f 100644
--- a/bob/ip/binseg/configs/datasets/hrf960.py
+++ b/bob/ip/binseg/configs/datasets/hrf960.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((0, 584, 0, 584)),
-        Resize((960)),
+        Resize(960),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf1168.py b/bob/ip/binseg/configs/datasets/hrf_1168.py
similarity index 74%
rename from bob/ip/binseg/configs/datasets/hrf1168.py
rename to bob/ip/binseg/configs/datasets/hrf_1168.py
index 67ece23f361a288247984b9a36e14f78fa511a55..0d17fa202268f6353ba2323359fd65a2a6bfca64 100644
--- a/bob/ip/binseg/configs/datasets/hrf1168.py
+++ b/bob/ip/binseg/configs/datasets/hrf_1168.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Crop(0, 108, 2336, 3296),  #(upper, left, height, width)
-        Resize((1168)),  # applies to the smaller edge
+        Resize(1168),  # applies to the smaller edge
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf1168test.py b/bob/ip/binseg/configs/datasets/hrf_1168_test.py
similarity index 67%
rename from bob/ip/binseg/configs/datasets/hrf1168test.py
rename to bob/ip/binseg/configs/datasets/hrf_1168_test.py
index d73da151cbaa28bcc9e33573bbe224911a6832b4..89b5df45990b941e68308bb8738b256261337616 100644
--- a/bob/ip/binseg/configs/datasets/hrf1168test.py
+++ b/bob/ip/binseg/configs/datasets/hrf_1168_test.py
@@ -14,10 +14,10 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([Crop(0, 108, 2336, 3296), Resize((1168)), ToTensor()])
+from bob.ip.binseg.data.transforms import Crop, Resize
+_transforms = [Crop(0, 108, 2336, 3296), Resize(1168)]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrftest.py b/bob/ip/binseg/configs/datasets/hrf_test.py
similarity index 68%
rename from bob/ip/binseg/configs/datasets/hrftest.py
rename to bob/ip/binseg/configs/datasets/hrf_test.py
index 0ae5d7630dbb870d19ab33a86980c5610866b8f5..2c926af4372cff3a753bd8092a03509b40c6da15 100644
--- a/bob/ip/binseg/configs/datasets/hrftest.py
+++ b/bob/ip/binseg/configs/datasets/hrf_test.py
@@ -14,10 +14,10 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([Crop(0, 108, 2336, 3296), ToTensor()])
+from bob.ip.binseg.data.transforms import Crop
+_transforms = [Crop(0, 108, 2336, 3296)]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarod.py b/bob/ip/binseg/configs/datasets/iostar_od.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/iostarod.py
rename to bob/ip/binseg/configs/datasets/iostar_od.py
index 78a5e91c091bbac62b1136e0bdbe33a681970ac6..dc4ad5d95c701797e4f06974f893632e52c912d5 100644
--- a/bob/ip/binseg/configs/datasets/iostarod.py
+++ b/bob/ip/binseg/configs/datasets/iostar_od.py
@@ -16,17 +16,14 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("optic-disc")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("optic-disc")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarodtest.py b/bob/ip/binseg/configs/datasets/iostar_od_test.py
similarity index 71%
rename from bob/ip/binseg/configs/datasets/iostarodtest.py
rename to bob/ip/binseg/configs/datasets/iostar_od_test.py
index 872600441e9b30c96248a8fd42e7174d2962a04e..d9503af9e08407446b0df69982cb9b59dc4427d6 100644
--- a/bob/ip/binseg/configs/datasets/iostarodtest.py
+++ b/bob/ip/binseg/configs/datasets/iostar_od_test.py
@@ -15,10 +15,6 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([ToTensor()])
-
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("optic-disc")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("optic-disc")["test"])
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel.py b/bob/ip/binseg/configs/datasets/iostar_vessel.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/iostarvessel.py
rename to bob/ip/binseg/configs/datasets/iostar_vessel.py
index c7b44fefb2e9c8edb009d2beee20072173007967..e6cd47b343cce1d2bdc091b688474d436f0ba5eb 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel.py
+++ b/bob/ip/binseg/configs/datasets/iostar_vessel.py
@@ -16,17 +16,14 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvesseltest.py b/bob/ip/binseg/configs/datasets/iostar_vessel_test.py
similarity index 71%
rename from bob/ip/binseg/configs/datasets/iostarvesseltest.py
rename to bob/ip/binseg/configs/datasets/iostar_vessel_test.py
index 77051798938841693443a475bf09d31edf6d8b7a..c05b845527cc129bcdff46f2e441a8babf9f385d 100644
--- a/bob/ip/binseg/configs/datasets/iostarvesseltest.py
+++ b/bob/ip/binseg/configs/datasets/iostar_vessel_test.py
@@ -15,10 +15,6 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([ToTensor()])
-
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["test"])
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel1168.py b/bob/ip/binseg/configs/datasets/iostarvessel1168.py
index 6fe05ee2d682339b8cd43b34e84f82f69145fefd..13457f6069c81a1d29c144e14b4397ec18822827 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel1168.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel1168.py
@@ -16,8 +16,7 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(144, 0, 768, 1024),
         Pad((30, 0, 30, 0)),
@@ -25,11 +24,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel544.py b/bob/ip/binseg/configs/datasets/iostarvessel544.py
index 2e48cfd9d694329ca3ff90f28eabe0716599d56e..d2e588e85a0d4b60e015da606ca8b7a4f2cab201 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel544.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel544.py
@@ -16,18 +16,15 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize(544),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel608.py b/bob/ip/binseg/configs/datasets/iostarvessel608.py
index e5454a9f1a6311700d891dbbd4d65adc17d73255..6b3ae8fafd92b19500c1fd33e59c7bf058d5f1c1 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel608.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel608.py
@@ -16,19 +16,16 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((81, 0, 81, 0)),
         Resize(608),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel960.py b/bob/ip/binseg/configs/datasets/iostarvessel960.py
index e2206848b9d398a98ed219b3021eb4039ee871bf..95ca89051c2644c44ddd399fc29097b764f939c3 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel960.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel960.py
@@ -16,18 +16,15 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize(960),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugecup.py b/bob/ip/binseg/configs/datasets/refuge_cup.py
similarity index 88%
rename from bob/ip/binseg/configs/datasets/refugecup.py
rename to bob/ip/binseg/configs/datasets/refuge_cup.py
index b90400a75cebb9eed0f3980f10cc3cef4e0d4cf0..2d26cc6d8f2eb9406eb6c1865d658a194e7a5aa2 100644
--- a/bob/ip/binseg/configs/datasets/refugecup.py
+++ b/bob/ip/binseg/configs/datasets/refuge_cup.py
@@ -27,20 +27,17 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
-        Resize((1539)),
+_transforms = [
+        Resize(1539),
         Pad((21, 46, 22, 47)),  #(left, top, right, bottom)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = REFUGE(protocol="default_cup")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugecuptest.py b/bob/ip/binseg/configs/datasets/refuge_cup_test.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/refugecuptest.py
rename to bob/ip/binseg/configs/datasets/refuge_cup_test.py
index a24ec43c0998fdb863f916bdd15b5b6fee9c6c2e..b1d839fb4586bfa3705adc126b3a0ec6480e8d3e 100644
--- a/bob/ip/binseg/configs/datasets/refugecuptest.py
+++ b/bob/ip/binseg/configs/datasets/refuge_cup_test.py
@@ -26,16 +26,11 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import CenterCrop
+_transforms = [CenterCrop(1632)]
 
-transforms = Compose([CenterCrop(1632), ToTensor()])
-
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_cup")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugeod.py b/bob/ip/binseg/configs/datasets/refuge_od.py
similarity index 85%
rename from bob/ip/binseg/configs/datasets/refugeod.py
rename to bob/ip/binseg/configs/datasets/refuge_od.py
index da226c8bd636bccbc28ff1f2952f30e30dc074ce..d61add28c08f25e6deb0c1c7265c37216ba0905c 100644
--- a/bob/ip/binseg/configs/datasets/refugeod.py
+++ b/bob/ip/binseg/configs/datasets/refuge_od.py
@@ -21,26 +21,18 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
 from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-transforms = Compose(
-    [
+_transforms = [
         Resize((1539)),
         Pad((21, 46, 22, 47)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugeodtest.py b/bob/ip/binseg/configs/datasets/refuge_od_test.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/refugeodtest.py
rename to bob/ip/binseg/configs/datasets/refuge_od_test.py
index a14ff84bc2ab67106823b32e49dac6e55c8189bc..8fb2ea541a9033ab28390f099843cec0553f4cae 100644
--- a/bob/ip/binseg/configs/datasets/refugeodtest.py
+++ b/bob/ip/binseg/configs/datasets/refuge_od_test.py
@@ -26,16 +26,11 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import CenterCrop
+_transforms = [CenterCrop(1632)]
 
-transforms = Compose([CenterCrop(1632), ToTensor()])
-
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3cup.py b/bob/ip/binseg/configs/datasets/rimoner3_cup.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/rimoner3cup.py
rename to bob/ip/binseg/configs/datasets/rimoner3_cup.py
index 361e35f4a82686397de85aa7b72471789dab1c90..080a32f94f56a63d123f31ed3929e9a8934a880e 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3cup.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_cup.py
@@ -16,25 +16,17 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
 from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-transforms = Compose(
-    [
+_transforms = [
         Pad((8, 8, 8, 8)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_cup")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3cuptest.py b/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/rimoner3cuptest.py
rename to bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
index c897048f11f1bf57824fd33171551191bb397625..6ae6c809f0c1f2967b5d153309ec85d5a65174de 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3cuptest.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
@@ -16,16 +16,12 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
 
-transforms = Compose([Pad((8, 8, 8, 8)), ToTensor()])
+from bob.ip.binseg.data.transforms import Pad
+_transforms = [Pad((8, 8, 8, 8))]
 
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_cup")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3od.py b/bob/ip/binseg/configs/datasets/rimoner3_od.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/rimoner3od.py
rename to bob/ip/binseg/configs/datasets/rimoner3_od.py
index 60e0a571ce37e74bcd7f3c859cd6c6d8406c314c..e1dd0a9449d28e758cd49441a115ec0271d2c29d 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3od.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_od.py
@@ -16,25 +16,17 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
 from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-transforms = Compose(
-    [
+_transforms = [
         Pad((8, 8, 8, 8)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3odtest.py b/bob/ip/binseg/configs/datasets/rimoner3_od_test.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/rimoner3odtest.py
rename to bob/ip/binseg/configs/datasets/rimoner3_od_test.py
index 0a633fd6de578f088961d7fdbeffe751011d459a..9fdb9a1b2c518fdd0d7475a85a48a5f117164abb 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3odtest.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_od_test.py
@@ -16,16 +16,11 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import Pad
+_transforms = [Pad((8, 8, 8, 8))]
 
-transforms = Compose([Pad((8, 8, 8, 8)), ToTensor()])
-
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare.py b/bob/ip/binseg/configs/datasets/stare.py
index 74adacbcdd1d5dcfc1166b59189c9d1e4c5464f7..d173f846e47dd919b702904f03923f5d2e40cf80 100644
--- a/bob/ip/binseg/configs/datasets/stare.py
+++ b/bob/ip/binseg/configs/datasets/stare.py
@@ -17,18 +17,15 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((2, 1, 2, 2)),  #(left, top, right, bottom)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare1024.py b/bob/ip/binseg/configs/datasets/stare1024.py
index ca3b395713b26e3044a358d73eea33ceb9ba2ec0..e68941a6a2d8b346e3e26a6736b1489905b026e9 100644
--- a/bob/ip/binseg/configs/datasets/stare1024.py
+++ b/bob/ip/binseg/configs/datasets/stare1024.py
@@ -17,8 +17,7 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Pad((0, 32, 0, 32)),
         Resize(1024),
@@ -26,11 +25,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
     ]
-)
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare1168.py b/bob/ip/binseg/configs/datasets/stare1168.py
index 425ac1e5dc5cf1033a0b3e83d72f9cbef371bbe6..6578f86b1e84974cd826e219a9bfee1ce69e5df5 100644
--- a/bob/ip/binseg/configs/datasets/stare1168.py
+++ b/bob/ip/binseg/configs/datasets/stare1168.py
@@ -14,8 +14,7 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(50, 0, 500, 705),
         Resize(1168),
@@ -23,11 +22,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare544.py b/bob/ip/binseg/configs/datasets/stare544.py
index da1b8230cb72d0ff6aca8a935db0a74d01360c79..9301343a231b2fbcb78b906ebe984379d7843995 100644
--- a/bob/ip/binseg/configs/datasets/stare544.py
+++ b/bob/ip/binseg/configs/datasets/stare544.py
@@ -17,19 +17,16 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Resize(471),
         Pad((0, 37, 0, 36)),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare960.py b/bob/ip/binseg/configs/datasets/stare960.py
index db8b88b5f0ae8330c55186e6942b3c7a9a43b652..f9af017fcef4e3fadbf62184c57fb6d43d26b7b5 100644
--- a/bob/ip/binseg/configs/datasets/stare960.py
+++ b/bob/ip/binseg/configs/datasets/stare960.py
@@ -17,8 +17,7 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Pad((0, 32, 0, 32)),
         Resize(960),
@@ -26,11 +25,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
     ]
-)
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/staretest.py b/bob/ip/binseg/configs/datasets/stare_test.py
similarity index 71%
rename from bob/ip/binseg/configs/datasets/staretest.py
rename to bob/ip/binseg/configs/datasets/stare_test.py
index c7a698012982b71b09a50c200fabd1927cc5af72..e8d78bcbe68cefcb4f5e0f24770c176549f41779 100644
--- a/bob/ip/binseg/configs/datasets/staretest.py
+++ b/bob/ip/binseg/configs/datasets/stare_test.py
@@ -16,10 +16,10 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([Pad((2, 1, 2, 2)), ToTensor()])
+from bob.ip.binseg.data.transforms import Pad
+_transforms = [Pad((2, 1, 2, 2))]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/models/driubn.py b/bob/ip/binseg/configs/models/driu_bn.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driubn.py
rename to bob/ip/binseg/configs/models/driu_bn.py
diff --git a/bob/ip/binseg/configs/models/driubnssl.py b/bob/ip/binseg/configs/models/driu_bn_ssl.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driubnssl.py
rename to bob/ip/binseg/configs/models/driu_bn_ssl.py
diff --git a/bob/ip/binseg/configs/models/driuod.py b/bob/ip/binseg/configs/models/driu_od.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driuod.py
rename to bob/ip/binseg/configs/models/driu_od.py
diff --git a/bob/ip/binseg/configs/models/driussl.py b/bob/ip/binseg/configs/models/driu_ssl.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driussl.py
rename to bob/ip/binseg/configs/models/driu_ssl.py
diff --git a/bob/ip/binseg/configs/models/m2unetssl.py b/bob/ip/binseg/configs/models/m2unet_ssl.py
similarity index 100%
rename from bob/ip/binseg/configs/models/m2unetssl.py
rename to bob/ip/binseg/configs/models/m2unet_ssl.py
diff --git a/bob/ip/binseg/data/binsegdataset.py b/bob/ip/binseg/data/binsegdataset.py
index 9c487da39f9616547482d5abfa98c378b9025cce..1a94c0be9679df2ab8dbd38f99e994cd4a1bb674 100644
--- a/bob/ip/binseg/data/binsegdataset.py
+++ b/bob/ip/binseg/data/binsegdataset.py
@@ -1,8 +1,11 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
+
 from torch.utils.data import Dataset
 import random
 
+from .transforms import Compose, ToTensor
+
 
 class BinSegDataset(Dataset):
     """PyTorch dataset wrapper around bob.db binary segmentation datasets.
@@ -13,20 +16,28 @@ class BinSegDataset(Dataset):
     ----------
     bobdb : :py:mod:`bob.db.base`
         Binary segmentation bob database (e.g. bob.db.drive)
+
     split : str
         ``'train'`` or ``'test'``. Defaults to ``'train'``
-    transform : :py:mod:`bob.ip.binseg.data.transforms`, optional
-        A transform or composition of transfroms. Defaults to ``None``.
+
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
+        ground-truth data.  Notice that image changing transformations such as
+        :py:class:`.transforms.ColorJitter` are only applied to the image and
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
+
     mask : bool
         whether dataset contains masks or not
+
     """
 
-    def __init__(self, bobdb, split="train", transform=None, index_to=None):
+    def __init__(self, bobdb, split="train", transforms=[], index_to=None):
         if index_to:
             self.database = bobdb.samples(split)[:index_to]
         else:
             self.database = bobdb.samples(split)
-        self.transform = transform
+        self.transform = Compose(transforms + [ToTensor()])
         self.split = split
 
     @property
diff --git a/bob/ip/binseg/data/chasedb1/test.py b/bob/ip/binseg/data/chasedb1/test.py
index 9fcccddf572f9ea86c1eb772303d39ddbfcc3097..90f196dddfc46716836ebdf7818c32363462ff72 100644
--- a/bob/ip/binseg/data/chasedb1/test.py
+++ b/bob/ip/binseg/data/chasedb1/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Crop
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -66,27 +65,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.chasedb1.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.chasedb1.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 3)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (960, 960))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (960, 960))
-        nose.tools.eq_(s[2].mode, "1")
-
-    transforms = Compose([Crop(0, 18, 960, 960)])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 8)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/csvdataset.py b/bob/ip/binseg/data/csvdataset.py
index 9e65e3638e1c30403e2cbe9a9a4867bf37a9ed64..43699faf9e41721573bbbc55649f5dd9ddcce8ae 100644
--- a/bob/ip/binseg/data/csvdataset.py
+++ b/bob/ip/binseg/data/csvdataset.py
@@ -12,6 +12,8 @@ import torchvision.transforms.functional as VF
 
 import bob.io.base
 
+from .transforms import Compose, ToTensor
+
 import logging
 
 logger = logging.getLogger(__name__)
@@ -80,20 +82,21 @@ class CSVDataset(Dataset):
         If set to ``True``, then checks if files in the file list are
         available.  Otherwise does not.
 
-    transform : :py:class:`.transforms.Compose`, Optional
-        a composition of transformations to be applied to **both** image and
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
         ground-truth data.  Notice that image changing transformations such as
         :py:class:`.transforms.ColorJitter` are only applied to the image and
-        **not** to ground-truth.
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
 
     """
 
     def __init__(
-        self, path, root_path=None, check_available=True, transform=None
+        self, path, root_path=None, check_available=True, transforms=[]
     ):
 
         self.root_path = root_path or os.path.dirname(path)
-        self.transform = transform
+        self.transform = Compose(transforms + [ToTensor()])
 
         def _make_abs_path(root, s):
             retval = []
diff --git a/bob/ip/binseg/data/drive/test.py b/bob/ip/binseg/data/drive/test.py
index 2834ca4109cc3d387f5208297d5665ad44f900a2..b7b291ff302efe90000fd17e114374d8b797823f 100644
--- a/bob/ip/binseg/data/drive/test.py
+++ b/bob/ip/binseg/data/drive/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, CenterCrop
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -64,30 +63,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.drive.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.drive.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 4)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (544, 544))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (544, 544))
-        nose.tools.eq_(s[2].mode, "1")
-        nose.tools.eq_(s[3].size, (544, 544))
-        nose.tools.eq_(s[3].mode, "1")
-
-
-    transforms = Compose([CenterCrop((544, 544))])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/folderdataset.py b/bob/ip/binseg/data/folderdataset.py
index 1936688458b69cb24b0b2e1b6fc9d42df9e21ade..2566fd77ca64dd357e9e3f8998bb830f10ec0c97 100644
--- a/bob/ip/binseg/data/folderdataset.py
+++ b/bob/ip/binseg/data/folderdataset.py
@@ -7,6 +7,8 @@ from PIL import Image
 
 from torch.utils.data import Dataset
 
+from .transforms import Compose, ToTensor
+
 
 def _find_files(data_path, glob):
     """
@@ -42,16 +44,17 @@ class FolderDataset(Dataset):
         glob that can be used to filter-down files to be loaded on the provided
         path
 
-    transform : :py:class:`.transforms.Compose`, Optional
-        a composition of transformations to be applied to **both** image and
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
         ground-truth data.  Notice that image changing transformations such as
         :py:class:`.transforms.ColorJitter` are only applied to the image and
-        **not** to ground-truth.
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
 
     """
 
-    def __init__(self, path, glob="*", transform=None):
-        self.transform = transform
+    def __init__(self, path, glob="*", transforms=[]):
+        self.transform = Compose(transforms + [ToTensor()])
         self.path = path
         self.data = _find_files(path, glob)
 
diff --git a/bob/ip/binseg/data/hrf/test.py b/bob/ip/binseg/data/hrf/test.py
index 508280410f19db519c939a747d4661bc3bad0c6b..9a46377604fe83ebf6f7fe6a112fb8a555e32383 100644
--- a/bob/ip/binseg/data/hrf/test.py
+++ b/bob/ip/binseg/data/hrf/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Crop, Resize
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -53,30 +52,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.hrf.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.hrf.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 4)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (1648, 1168))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (1648, 1168))
-        nose.tools.eq_(s[2].mode, "1")
-        nose.tools.eq_(s[3].size, (1648, 1168))
-        nose.tools.eq_(s[3].mode, "1")
-
-
-    transforms = Compose([Crop(0, 108, 2336, 3296), Resize((1168))])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 15)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 30)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/iostar/test.py b/bob/ip/binseg/data/iostar/test.py
index b0b026db989176b6f9b652b8be8dacef17688751..ecedb60c2c689ecc67569382ba5038935ff69d62 100644
--- a/bob/ip/binseg/data/iostar/test.py
+++ b/bob/ip/binseg/data/iostar/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Crop, Resize
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -70,39 +69,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.iostar.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.stare.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 4)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (1024, 1024))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (1024, 1024))
-        nose.tools.eq_(s[2].mode, "1")
-        nose.tools.eq_(s[3].size, (1024, 1024))
-        nose.tools.eq_(s[3].mode, "1")
-
-    transforms = None
-
-    subset = dataset.subsets("vessel")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
-
-    subset = dataset.subsets("optic-disc")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/stare/test.py b/bob/ip/binseg/data/stare/test.py
index b47fd4d9205a784b69b3e22d7b438ebc5de7d770..0a60cd601a5aa75bf8fa7baea888a63a924256de 100644
--- a/bob/ip/binseg/data/stare/test.py
+++ b/bob/ip/binseg/data/stare/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Pad
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -66,27 +65,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.stare.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.stare.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 3)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (704, 608))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (704, 608))
-        nose.tools.eq_(s[2].mode, "1")
-
-    transforms = Compose([Pad((2, 1, 2, 2))])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/utils.py b/bob/ip/binseg/data/utils.py
index 6eca077aaba8a42c8f594c7c7ee55f34edf8e966..0e1c8842ae61e44a56f60f4eda4435217e586da3 100644
--- a/bob/ip/binseg/data/utils.py
+++ b/bob/ip/binseg/data/utils.py
@@ -5,35 +5,14 @@
 """Common utilities"""
 
 
-import functools
-
-import nose.plugins.skip
-
 import torch
 import torch.utils.data
 
-import bob.extension
-
-
-def rc_variable_set(name):
-    """
-    Decorator that checks if a given bobrc variable is set before running
-    """
-
-    def wrapped_function(test):
-        @functools.wraps(test)
-        def wrapper(*args, **kwargs):
-            if name not in bob.extension.rc:
-                raise nose.plugins.skip.SkipTest("Bob's RC variable '%s' is not set" % name)
-            return test(*args, **kwargs)
-
-        return wrapper
-
-    return wrapped_function
+from .transforms import Compose, ToTensor
 
 
-class DelayedSample2TorchDataset(torch.utils.data.Dataset):
-    """PyTorch dataset wrapper around DelayedSample lists
+class SampleList2TorchDataset(torch.utils.data.Dataset):
+    """PyTorch dataset wrapper around Sample lists
 
     A transform object can be passed that will be applied to the image, ground
     truth and mask (if present).
@@ -43,17 +22,21 @@ class DelayedSample2TorchDataset(torch.utils.data.Dataset):
     Parameters
     ----------
     samples : list
-        A list of :py:class:`bob.ip.binseg.data.sample.DelayedSample` objects
+        A list of :py:class:`bob.ip.binseg.data.sample.Sample` objects
 
-    transform : :py:mod:`bob.ip.binseg.data.transforms`, optional
-        A transform or composition of transfroms. Defaults to ``None``.
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
+        ground-truth data.  Notice that image changing transformations such as
+        :py:class:`.transforms.ColorJitter` are only applied to the image and
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
 
     """
 
-    def __init__(self, samples, transform=None):
+    def __init__(self, samples, transforms=[]):
 
         self._samples = samples
-        self._transform = transform
+        self._transform = Compose(transforms + [ToTensor()])
 
     def __len__(self):
         """
diff --git a/bob/ip/binseg/test/test_config.py b/bob/ip/binseg/test/test_config.py
new file mode 100644
index 0000000000000000000000000000000000000000..c60bafb59ea206d006d502be63ce1c3d497e8fd8
--- /dev/null
+++ b/bob/ip/binseg/test/test_config.py
@@ -0,0 +1,120 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+import nose.tools
+
+import torch
+
+from .utils import rc_variable_set
+
+
+@rc_variable_set("bob.ip.binseg.drive.datadir")
+def test_drive_default_train():
+
+    from ..configs.datasets.drive import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.drive.datadir")
+def test_drive_default_test():
+
+    from ..configs.datasets.drive_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.stare.datadir")
+def test_stare_default_train():
+
+    from ..configs.datasets.stare import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.stare.datadir")
+def test_stare_default_test():
+
+    from ..configs.datasets.stare_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.chasedb1.datadir")
+def test_chasedb1_default_train():
+
+    from ..configs.datasets.chasedb1 import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.chasedb1.datadir")
+def test_chasedb1_default_test():
+
+    from ..configs.datasets.chasedb1_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.hrf.datadir")
+def test_hrf_default_train():
+
+    from ..configs.datasets.hrf_1168 import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.hrf.datadir")
+def test_hrf_default_test():
+
+    from ..configs.datasets.hrf_1168_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
diff --git a/bob/ip/binseg/test/utils.py b/bob/ip/binseg/test/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..b5739240175bb4c718c2ba98693a652a84aef02f
--- /dev/null
+++ b/bob/ip/binseg/test/utils.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+
+"""Test utilities"""
+
+
+import functools
+import nose.plugins.skip
+import bob.extension
+
+
+def rc_variable_set(name):
+    """
+    Decorator that checks if a given bobrc variable is set before running
+    """
+
+    def wrapped_function(test):
+        @functools.wraps(test)
+        def wrapper(*args, **kwargs):
+            if name not in bob.extension.rc:
+                raise nose.plugins.skip.SkipTest("Bob's RC variable '%s' is not set" % name)
+            return test(*args, **kwargs)
+
+        return wrapper
+
+    return wrapped_function
diff --git a/doc/api.rst b/doc/api.rst
index 7541a4ed8fec7fa54441e71414f9971a4e75b76a..020371c8730516a5f20de790ec021fdd9adc3ef4 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -109,13 +109,13 @@ Models
    :template: config.rst
 
    bob.ip.binseg.configs.models.driu
-   bob.ip.binseg.configs.models.driubn
-   bob.ip.binseg.configs.models.driubnssl
-   bob.ip.binseg.configs.models.driuod
-   bob.ip.binseg.configs.models.driussl
+   bob.ip.binseg.configs.models.driu_bn
+   bob.ip.binseg.configs.models.driu_bn_ssl
+   bob.ip.binseg.configs.models.driu_od
+   bob.ip.binseg.configs.models.driu_ssl
    bob.ip.binseg.configs.models.hed
    bob.ip.binseg.configs.models.m2unet
-   bob.ip.binseg.configs.models.m2unetssl
+   bob.ip.binseg.configs.models.m2unet_ssl
    bob.ip.binseg.configs.models.resunet
    bob.ip.binseg.configs.models.unet
 
@@ -129,64 +129,52 @@ Datasets
    :toctree: api/configs/datasets
    :template: config.rst
 
-   bob.ip.binseg.configs.datasets.chasedb1
-   bob.ip.binseg.configs.datasets.chasedb11024
-   bob.ip.binseg.configs.datasets.chasedb11168
-   bob.ip.binseg.configs.datasets.chasedb1544
-   bob.ip.binseg.configs.datasets.chasedb1608
-   bob.ip.binseg.configs.datasets.chasedb1test
    bob.ip.binseg.configs.datasets.csv
-   bob.ip.binseg.configs.datasets.drionsdb
-   bob.ip.binseg.configs.datasets.drionsdbtest
-   bob.ip.binseg.configs.datasets.dristhigs1cup
-   bob.ip.binseg.configs.datasets.dristhigs1cuptest
-   bob.ip.binseg.configs.datasets.dristhigs1od
-   bob.ip.binseg.configs.datasets.dristhigs1odtest
-   bob.ip.binseg.configs.datasets.drive
-   bob.ip.binseg.configs.datasets.drive1024
-   bob.ip.binseg.configs.datasets.drive1168
-   bob.ip.binseg.configs.datasets.drive608
-   bob.ip.binseg.configs.datasets.drive960
-   bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608
-   bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare
-   bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024
-   bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar
-   bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168
-   bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf
-   bob.ip.binseg.configs.datasets.drivestareiostarhrf960
-   bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase
-   bob.ip.binseg.configs.datasets.drivetest
    bob.ip.binseg.configs.datasets.folder
+
+   bob.ip.binseg.configs.datasets.chasedb1
+   bob.ip.binseg.configs.datasets.chasedb1_test
+   bob.ip.binseg.configs.datasets.covd_chasedb1
+   bob.ip.binseg.configs.datasets.covd_chasedb1_ssl
+
+   bob.ip.binseg.configs.datasets.drive
+   bob.ip.binseg.configs.datasets.drive_test
+   bob.ip.binseg.configs.datasets.covd_drive
+   bob.ip.binseg.configs.datasets.covd_drive_ssl
+
    bob.ip.binseg.configs.datasets.hrf
-   bob.ip.binseg.configs.datasets.hrf1024
-   bob.ip.binseg.configs.datasets.hrf1168
-   bob.ip.binseg.configs.datasets.hrf1168test
-   bob.ip.binseg.configs.datasets.hrf544
-   bob.ip.binseg.configs.datasets.hrf544test
-   bob.ip.binseg.configs.datasets.hrf608
-   bob.ip.binseg.configs.datasets.hrf960
-   bob.ip.binseg.configs.datasets.hrftest
-   bob.ip.binseg.configs.datasets.iostarod
-   bob.ip.binseg.configs.datasets.iostarodtest
-   bob.ip.binseg.configs.datasets.iostarvessel
-   bob.ip.binseg.configs.datasets.iostarvessel1168
-   bob.ip.binseg.configs.datasets.iostarvessel544
-   bob.ip.binseg.configs.datasets.iostarvessel608
-   bob.ip.binseg.configs.datasets.iostarvessel960
-   bob.ip.binseg.configs.datasets.iostarvesseltest
-   bob.ip.binseg.configs.datasets.refugecup
-   bob.ip.binseg.configs.datasets.refugecuptest
-   bob.ip.binseg.configs.datasets.refugeod
-   bob.ip.binseg.configs.datasets.refugeodtest
-   bob.ip.binseg.configs.datasets.rimoner3cup
-   bob.ip.binseg.configs.datasets.rimoner3cuptest
-   bob.ip.binseg.configs.datasets.rimoner3od
-   bob.ip.binseg.configs.datasets.rimoner3odtest
+   bob.ip.binseg.configs.datasets.hrf_1168
+   bob.ip.binseg.configs.datasets.hrf_1168_test
+   bob.ip.binseg.configs.datasets.hrf_test
+   bob.ip.binseg.configs.datasets.covd_hrf
+   bob.ip.binseg.configs.datasets.covd_hrf_ssl
+
+   bob.ip.binseg.configs.datasets.iostar_vessel
+   bob.ip.binseg.configs.datasets.iostar_vessel_test
+   bob.ip.binseg.configs.datasets.covd_iostar_vessel
+   bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl
+   bob.ip.binseg.configs.datasets.iostar_od
+   bob.ip.binseg.configs.datasets.iostar_od_test
+
    bob.ip.binseg.configs.datasets.stare
-   bob.ip.binseg.configs.datasets.stare1024
-   bob.ip.binseg.configs.datasets.stare1168
-   bob.ip.binseg.configs.datasets.stare544
-   bob.ip.binseg.configs.datasets.stare960
-   bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544
-   bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive
-   bob.ip.binseg.configs.datasets.staretest
+   bob.ip.binseg.configs.datasets.stare_test
+   bob.ip.binseg.configs.datasets.covd_stare
+   bob.ip.binseg.configs.datasets.covd_stare_ssl
+
+   bob.ip.binseg.configs.datasets.drionsdb
+   bob.ip.binseg.configs.datasets.drionsdb_test
+
+   bob.ip.binseg.configs.datasets.dristhigs1_cup
+   bob.ip.binseg.configs.datasets.dristhigs1_cup_test
+   bob.ip.binseg.configs.datasets.dristhigs1_od
+   bob.ip.binseg.configs.datasets.dristhigs1_od_test
+
+   bob.ip.binseg.configs.datasets.refuge_cup
+   bob.ip.binseg.configs.datasets.refuge_cup_test
+   bob.ip.binseg.configs.datasets.refuge_od
+   bob.ip.binseg.configs.datasets.refuge_od_test
+
+   bob.ip.binseg.configs.datasets.rimoner3_cup
+   bob.ip.binseg.configs.datasets.rimoner3_cup_test
+   bob.ip.binseg.configs.datasets.rimoner3_od
+   bob.ip.binseg.configs.datasets.rimoner3_od_test
diff --git a/doc/benchmarkresults.rst b/doc/benchmarkresults.rst
index becbf3b3ec42d2e29e782fbb077530fff94c58c8..5023a3ce86bebf46c6919a2acfdc092d221b0748 100644
--- a/doc/benchmarkresults.rst
+++ b/doc/benchmarkresults.rst
@@ -39,12 +39,12 @@ F1 Scores (micro-level)
      - 0.817 (0.013)
      - `0.803 (0.014) <m2unet_drive.pth_>`_
      - 0.822 (0.015)
-   * - :py:mod:`HRF <bob.ip.binseg.configs.datasets.hrf1168>`
+   * - :py:mod:`HRF <bob.ip.binseg.configs.datasets.hrf_1168>`
      - `0.783 (0.055) <driu_hrf.pth_>`_
      - 0.783 (0.058)
      - `0.780 (0.057) <m2unet_hrf.pth_>`_
      - 0.788 (0.051)
-   * - :py:mod:`IOSTAR (vessel) <bob.ip.binseg.configs.datasets.iostarvessel>`
+   * - :py:mod:`IOSTAR (vessel) <bob.ip.binseg.configs.datasets.iostar_vessel>`
      - `0.825 (0.020) <driu_iostar.pth_>`_
      - 0.825 (0.020)
      - `0.817 (0.020) <m2unet_iostar.pth_>`_
diff --git a/doc/covdresults.rst b/doc/covdresults.rst
index 73aa7270161b199399a8c8403961192c1e6df6e8..3abe84458751bdc56d4ba55e0799a14f92e6e499 100644
--- a/doc/covdresults.rst
+++ b/doc/covdresults.rst
@@ -27,46 +27,46 @@ brackets.
    :header-rows: 1
 
    * - F1 score
-     - :py:mod:`DRIU <bob.ip.binseg.configs.models.driu>`/:py:mod:`DRIU@SSL <bob.ip.binseg.configs.models.driussl>`
-     - :py:mod:`DRIU+BN <bob.ip.binseg.configs.models.driubn>`/:py:mod:`DRIU+BN@SSL <bob.ip.binseg.configs.models.driubnssl>`
-     - :py:mod:`M2U-Net <bob.ip.binseg.configs.models.m2unet>`/:py:mod:`M2U-Net@SSL <bob.ip.binseg.configs.models.m2unetssl>`
-   * - :py:mod:`DRIVE (COVD-) <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544>`
+     - :py:mod:`DRIU <bob.ip.binseg.configs.models.driu>`/:py:mod:`DRIU@SSL <bob.ip.binseg.configs.models.driu_ssl>`
+     - :py:mod:`DRIU+BN <bob.ip.binseg.configs.models.driu_bn>`/:py:mod:`DRIU+BN@SSL <bob.ip.binseg.configs.models.driu_bn_ssl>`
+     - :py:mod:`M2U-Net <bob.ip.binseg.configs.models.m2unet>`/:py:mod:`M2U-Net@SSL <bob.ip.binseg.configs.models.m2unet_ssl>`
+   * - :py:mod:`COVD-DRIVE <bob.ip.binseg.configs.datasets.covd_drive>`
      - 0.788 (0.018)
      - 0.797 (0.019)
      - `0.789 (0.018) <m2unet_covd-drive.pth>`_
-   * - :py:mod:`DRIVE (SSL, COVD-) <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive>`
+   * - :py:mod:`COVD-DRIVE+SSL <bob.ip.binseg.configs.datasets.covd_drive_ssl>`
      - 0.785 (0.018)
      - 0.783 (0.019)
      - `0.791 (0.014) <m2unet_covd-drive_ssl.pth>`_
-   * - :py:mod:`STARE (COVD-) <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608>`
+   * - :py:mod:`COVD-STARE <bob.ip.binseg.configs.datasets.covd_stare>`
      - 0.778 (0.117)
      - 0.778 (0.122)
      - `0.812 (0.046) <m2unet_covd-stare.pth>`_
-   * - :py:mod:`STARE (SSL, COVD-) <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare>`
+   * - :py:mod:`COVD-STARE+SSL <bob.ip.binseg.configs.datasets.covd_stare_ssl>`
      - 0.788 (0.102)
      - 0.811 (0.074)
      - `0.820 (0.044) <m2unet_covd-stare_ssl.pth>`_
-   * - :py:mod:`CHASE-DB1 (COVD-) <bob.ip.binseg.configs.datasets.drivestareiostarhrf960>`
+   * - :py:mod:`COVD-CHASEDB1 <bob.ip.binseg.configs.datasets.covd_chasedb1>`
      - 0.796 (0.027)
      - 0.791 (0.025)
      - `0.788 (0.024) <m2unet_covd-chasedb1.pth>`_
-   * - :py:mod:`CHASE-DB1 (SSL, COVD-) <bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase>`
+   * - :py:mod:`COVD-CHASEDB1+SSL <bob.ip.binseg.configs.datasets.covd_chasedb1_ssl>`
      - 0.796 (0.024)
      - 0.798 (0.025)
      - `0.799 (0.026) <m2unet_covd-chasedb1_ssl.pth>`_
-   * - :py:mod:`HRF (COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168>`
+   * - :py:mod:`COVD-HRF <bob.ip.binseg.configs.datasets.covd_hrf>`
      - 0.799 (0.044)
      - 0.800 (0.045)
      - `0.802 (0.045) <m2unet_covd-hrf.pth>`_
-   * - :py:mod:`HRF (SSL, COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf>`
+   * - :py:mod:`COVD-HRF+SSL <bob.ip.binseg.configs.datasets.covd_hrf_ssl>`
      - 0.799 (0.044)
      - 0.784 (0.048)
      - `0.797 (0.044) <m2unet_covd-hrf_ssl.pth>`_
-   * - :py:mod:`IOSTAR (vessel, COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024>`
+   * - :py:mod:`COVD-IOSTAR-VESSEL <bob.ip.binseg.configs.datasets.covd_iostar_vessel>`
      - 0.791 (0.021)
      - 0.777 (0.032)
      - `0.793 (0.015) <m2unet_covd-iostar.pth>`_
-   * - :py:mod:`IOSTAR (vessel, SSL, COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar>`
+   * - :py:mod:`COVD-IOSTAR-VESSEL+SSL <bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl>`
      - 0.797 (0.017)
      - 0.811 (0.074)
      - `0.785 (0.018) <m2unet_covd-iostar_ssl.pth>`_
diff --git a/doc/models.rst b/doc/models.rst
index 25e347f891464dcfddbba9809d0121f881f88c90..5f9406458a8b5b2b6649da8c41487e2b3341ad67 100644
--- a/doc/models.rst
+++ b/doc/models.rst
@@ -19,46 +19,46 @@ weights of a subset of all evaluated models.
    * - :py:mod:`drive <bob.ip.binseg.configs.datasets.drive>`
      - driu_drive.pth_
      - m2unet_drive.pth_
-   * - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544>`
+   * - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.covd_drive>`
      -
      - m2unet_covd-drive.pth_
-   * - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive>`
+   * - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.covd_drive_ssl>`
      -
      - m2unet_covd-drive_ssl.pth_
    * - :py:mod:`stare <bob.ip.binseg.configs.datasets.stare>`
      - driu_stare.pth_
      - m2unet_stare.pth_
-   * - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608>`
+   * - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.covd_stare>`
      -
      - m2unet_covd-stare.pth_
-   * - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare>`
+   * - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.covd_stare_ssl>`
      -
      - m2unet_covd-stare_ssl.pth_
    * - :py:mod:`chasedb1 <bob.ip.binseg.configs.datasets.chasedb1>`
      - driu_chasedb1.pth_
      - m2unet_chasedb1.pth_
-   * - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.drivestareiostarhrf960>`
+   * - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.covd_chasedb1>`
      -
      - m2unet_covd-chasedb1.pth_
-   * - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase>`
+   * - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.covd_chasedb1_ssl>`
      -
      - m2unet_covd-chasedb1_ssl.pth_
-   * - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostarvessel>`
+   * - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostar_vessel>`
      - driu_iostar.pth_
      - m2unet_iostar.pth_
-   * - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024>`
+   * - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.covd_iostar_vessel>`
      -
      - m2unet_covd-iostar.pth_
-   * - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar>`
+   * - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl>`
      -
      - m2unet_covd-iostar_ssl.pth_
-   * - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf1168>`
+   * - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf_1168>`
      - driu_hrf.pth_
      - m2unet_hrf.pth_
-   * - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168>`
+   * - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.covd_hrf>`
      -
      - m2unet_covd-hrf.pth_
-   * - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf>`
+   * - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.covd_hrf_ssl>`
      -
      - m2unet_covd-hrf_ssl.pth_
 
diff --git a/doc/training.rst b/doc/training.rst
index fe265f1ed4238675edebb388a8ab7702649db3aa..35bf7b1db52b26f6bedce605b3a3ddc9423119a0 100644
--- a/doc/training.rst
+++ b/doc/training.rst
@@ -41,8 +41,8 @@ card, for supervised training of baselines.  Use it like this:
     - :py:mod:`drive <bob.ip.binseg.configs.datasets.drive>`
     - :py:mod:`stare <bob.ip.binseg.configs.datasets.stare>`
     - :py:mod:`chasedb1 <bob.ip.binseg.configs.datasets.chasedb1>`
-    - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostarvessel>`
-    - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf1168>`
+    - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostar_vessel>`
+    - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf_1168>`
   * - :py:mod:`unet <bob.ip.binseg.configs.models.unet>`
     - 4
     - 2
@@ -55,7 +55,7 @@ card, for supervised training of baselines.  Use it like this:
     - 4
     - 4
     - 1
-  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driubn>`
+  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driu_bn>`
     - 8
     - 5
     - 4
@@ -111,12 +111,12 @@ card, for supervised training of COVD- systems.  Use it like this:
 .. list-table::
 
   * - **Models / Datasets**
-    - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544>`
-    - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608>`
-    - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.drivestareiostarhrf960>`
-    - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024>`
-    - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168>`
-  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driubn>`
+    - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.covd_drive>`
+    - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.covd_stare>`
+    - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.covd_chasedb1>`
+    - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.covd_iostar_vessel>`
+    - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.covd_hrf>`
+  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driu_bn>`
     - 4
     - 4
     - 2
@@ -144,18 +144,18 @@ card, for semi-supervised learning of COVD- systems.  Use it like this:
 .. list-table::
 
   * - **Models / Datasets**
-    - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive>`
-    - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare>`
-    - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase>`
-    - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar>`
-    - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf>`
-  * - :py:mod:`driu-ssl <bob.ip.binseg.configs.models.driussl>` / :py:mod:`driu-bn-ssl <bob.ip.binseg.configs.models.driubnssl>`
+    - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.covd_drive_ssl>`
+    - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.covd_stare_ssl>`
+    - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.covd_chasedb1_ssl>`
+    - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl>`
+    - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.covd_hrf_ssl>`
+  * - :py:mod:`driu-ssl <bob.ip.binseg.configs.models.driu_ssl>` / :py:mod:`driu-bn-ssl <bob.ip.binseg.configs.models.driu_bn_ssl>`
     - 4
     - 4
     - 2
     - 1
     - 1
-  * - :py:mod:`m2unet-ssl <bob.ip.binseg.configs.models.m2unetssl>`
+  * - :py:mod:`m2unet-ssl <bob.ip.binseg.configs.models.m2unet_ssl>`
     - 4
     - 4
     - 2
diff --git a/setup.py b/setup.py
index 8eb42600c3972f49aa531fc36d4cea50eed14ed8..b8af972471fc99ce9160f2cb7aded9dd9e6fd99a 100644
--- a/setup.py
+++ b/setup.py
@@ -43,13 +43,13 @@ setup(
 
             # models
             "driu = bob.ip.binseg.configs.models.driu",
-            "driu-bn = bob.ip.binseg.configs.models.driubn",
-            "driu-ssl = bob.ip.binseg.configs.models.driussl",
-            "driu-bn-ssl = bob.ip.binseg.configs.models.driubnssl",
-            "driu-od = bob.ip.binseg.configs.models.driuod",
+            "driu-bn = bob.ip.binseg.configs.models.driu_bn",
+            "driu-ssl = bob.ip.binseg.configs.models.driu_ssl",
+            "driu-bn-ssl = bob.ip.binseg.configs.models.driu_bn_ssl",
+            "driu-od = bob.ip.binseg.configs.models.driu_od",
             "hed = bob.ip.binseg.configs.models.hed",
             "m2unet = bob.ip.binseg.configs.models.m2unet",
-            "m2unet-ssl = bob.ip.binseg.configs.models.m2unetssl",
+            "m2unet-ssl = bob.ip.binseg.configs.models.m2unet_ssl",
             "unet = bob.ip.binseg.configs.models.unet",
             "resunet = bob.ip.binseg.configs.models.resunet",
 
@@ -57,60 +57,60 @@ setup(
             "csv-dataset-example = bob.ip.binseg.configs.datasets.csv",
             "folder-dataset-example = bob.ip.binseg.configs.datasets.folder",
 
-            # drive dataset (numbers represent target resolution)
+            # drive dataset
             "drive = bob.ip.binseg.configs.datasets.drive",
-            "covd-drive = bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544",
-            "covd-drive-ssl = bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive",
-            "drive-test = bob.ip.binseg.configs.datasets.drivetest",
+            "covd-drive = bob.ip.binseg.configs.datasets.covd_drive",
+            "covd-drive-ssl = bob.ip.binseg.configs.datasets.covd_drive_ssl",
+            "drive-test = bob.ip.binseg.configs.datasets.drive_test",
 
-            # stare dataset (numbers represent target resolution)
+            # stare dataset
             "stare = bob.ip.binseg.configs.datasets.stare",
-            "covd-stare = bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608",
-            "covd-stare-ssl = bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare",
-            "stare-test = bob.ip.binseg.configs.datasets.staretest",
+            "covd-stare = bob.ip.binseg.configs.datasets.covd_stare",
+            "covd-stare-ssl = bob.ip.binseg.configs.datasets.covd_stare_ssl",
+            "stare-test = bob.ip.binseg.configs.datasets.stare_test",
 
-            # iostar vessel (numbers represent target resolution)
-            "iostar-vessel = bob.ip.binseg.configs.datasets.iostarvessel",
-            "covd-iostar-vessel = bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024",
-            "covd-iostar-vessel-ssl = bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar",
-            "iostar-vessel-test = bob.ip.binseg.configs.datasets.iostarvesseltest",
+            # iostar vessel
+            "iostar-vessel = bob.ip.binseg.configs.datasets.iostar_vessel",
+            "covd-iostar-vessel = bob.ip.binseg.configs.datasets.covd_iostar_vessel",
+            "covd-iostar-vessel-ssl = bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl",
+            "iostar-vessel-test = bob.ip.binseg.configs.datasets.iostar_vessel_test",
 
             # iostar optic disc
-            "iostarod = bob.ip.binseg.configs.datasets.iostarod",
-            "iostarodtest = bob.ip.binseg.configs.datasets.iostarodtest",
+            "iostar-optic-disc = bob.ip.binseg.configs.datasets.iostar_od",
+            "iostar-optic-disc-test = bob.ip.binseg.configs.datasets.iostar_od_test",
 
             # hrf (numbers represent target resolution)
-            "hrf = bob.ip.binseg.configs.datasets.hrf1168",
-            "covd-hrf = bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168",
-            "covd-hrf-ssl = bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf",
-            "hrftest-test = bob.ip.binseg.configs.datasets.hrftest",
+            "hrf = bob.ip.binseg.configs.datasets.hrf_1168",
+            "covd-hrf = bob.ip.binseg.configs.datasets.covd_hrf",
+            "covd-hrf-ssl = bob.ip.binseg.configs.datasets.covd_hrf_ssl",
+            "hrftest-test = bob.ip.binseg.configs.datasets.hrf_1168_test",
 
-            # chase-db1 (numbers represent target resolution)
+            # chase-db1
             "chasedb1 = bob.ip.binseg.configs.datasets.chasedb1",
-            "covd-chasedb1 = bob.ip.binseg.configs.datasets.drivestareiostarhrf960",
-            "covd-chasedb1-ssl = bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase",
-            "chasedb1-test = bob.ip.binseg.configs.datasets.chasedb1test",
+            "covd-chasedb1 = bob.ip.binseg.configs.datasets.covd_chasedb1",
+            "covd-chasedb1-ssl = bob.ip.binseg.configs.datasets.covd_chasedb1_ssl",
+            "chasedb1-test = bob.ip.binseg.configs.datasets.chasedb1_test",
 
             # drionsdb
             "drionsdb = bob.ip.binseg.configs.datasets.drionsdb",
-            "drionsdb-test = bob.ip.binseg.configs.datasets.drionsdbtest",
+            "drionsdb-test = bob.ip.binseg.configs.datasets.drionsdb_test",
 
             # drishtigs
-            "drishtigs1-od = bob.ip.binseg.configs.datasets.dristhigs1od",
-            "drishtigs1-od-test = bob.ip.binseg.configs.datasets.dristhigs1odtest",
-            "drishtigs1-cup = bob.ip.binseg.configs.datasets.dristhigs1cup",
-            "drishtigs1-cup-test = bob.ip.binseg.configs.datasets.dristhigs1cuptest",
+            "drishtigs1-od = bob.ip.binseg.configs.datasets.dristhigs1_od",
+            "drishtigs1-od-test = bob.ip.binseg.configs.datasets.dristhigs1_od_test",
+            "drishtigs1-cup = bob.ip.binseg.configs.datasets.dristhigs1_cup",
+            "drishtigs1-cup-test = bob.ip.binseg.configs.datasets.dristhigs1_cup_test",
             # refuge
-            "refuge-cup = bob.ip.binseg.configs.datasets.refugecup",
-            "refuge-cup-test = bob.ip.binseg.configs.datasets.refugecuptest",
-            "refuge-od = bob.ip.binseg.configs.datasets.refugeod",
-            "refuge-od-test = bob.ip.binseg.configs.datasets.refugeodtest",
+            "refuge-cup = bob.ip.binseg.configs.datasets.refuge_cup",
+            "refuge-cup-test = bob.ip.binseg.configs.datasets.refuge_cup_test",
+            "refuge-od = bob.ip.binseg.configs.datasets.refuge_od",
+            "refuge-od-test = bob.ip.binseg.configs.datasets.refuge_od_test",
 
             # rim one r3
-            "rimoner3-cup = bob.ip.binseg.configs.datasets.rimoner3cup",
-            "rimoner3-cup-test = bob.ip.binseg.configs.datasets.rimoner3cuptest",
-            "rimoner3-od = bob.ip.binseg.configs.datasets.rimoner3od",
-            "rimoner3-od-test = bob.ip.binseg.configs.datasets.rimoner3odtest",
+            "rimoner3-cup = bob.ip.binseg.configs.datasets.rimoner3_cup",
+            "rimoner3-cup-test = bob.ip.binseg.configs.datasets.rimoner3_cup_test",
+            "rimoner3-od = bob.ip.binseg.configs.datasets.rimoner3_od",
+            "rimoner3-od-test = bob.ip.binseg.configs.datasets.rimoner3_od_test",
         ],
     },
     # check classifiers, add and remove as you see fit