diff --git a/bob/bio/base/config/examples/lda_atnt_legacy.py b/bob/bio/base/config/examples/lda_atnt_legacy.py
index aecb53fb4ba978cd9edbb07ead7c75e85bab1c50..a23b93d859d81cbbd10656fb9003b62488ba217b 100644
--- a/bob/bio/base/config/examples/lda_atnt_legacy.py
+++ b/bob/bio/base/config/examples/lda_atnt_legacy.py
@@ -1,24 +1,18 @@
 # from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector, AlgorithmAdaptor
 
-import bob.db.atnt
+import bob.bio.base
+import bob.bio.face
+
+## DATABASE
+
 from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector
+database = DatabaseConnector(bob.bio.face.database.AtntBioDatabase(original_directory="./atnt"), protocol="Default")
 
-database = DatabaseConnector(bob.db.atnt.Database(), protocol="Default")
 
 from sklearn.pipeline import Pipeline, make_pipeline
-from sklearn.decomposition import PCA
-
 from bob.pipelines.mixins import CheckpointMixin, SampleMixin
-from bob.bio.base.mixins import CheckpointSampleLinearize
 from bob.bio.base.mixins.legacy import LegacyProcessorMixin, LegacyAlgorithmMixin
-
-
-class CheckpointSamplePCA(CheckpointMixin, SampleMixin, PCA):
-    """
-    Enables SAMPLE and CHECKPOINTIN handling for https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
-    """
-
-    pass
+from bob.bio.base.transformers import CheckpointSampleLinearize, CheckpointSamplePCA
 
 
 #### PREPROCESSOR LEGACY ###
@@ -68,7 +62,7 @@ extractor = Pipeline(
     ]
 )
 
-extractor = dask_it(extractor)
+#extractor = dask_it(extractor)
 
 from bob.bio.base.pipelines.vanilla_biometrics.biometric_algorithm import (
     Distance,
diff --git a/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py b/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py
index 1e12c1a971c0042e85c80124dab950357cba33b8..0b9d601e3840d24d76835b49aa2dfbfbd0dc17e7 100644
--- a/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py
+++ b/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py
@@ -1,27 +1,21 @@
 # from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector, AlgorithmAdaptor
 
-import bob.db.atnt
+import bob.bio.base
+import bob.bio.face
+
+## DATABASE
+
 from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector
+database = DatabaseConnector(bob.bio.face.database.AtntBioDatabase(original_directory="./atnt"), protocol="Default")
 
-database = DatabaseConnector(bob.db.atnt.Database(), protocol="Default")
 
 from sklearn.pipeline import Pipeline, make_pipeline
-from sklearn.decomposition import PCA
-
 from bob.pipelines.mixins import CheckpointMixin, SampleMixin
-from bob.bio.base.mixins import CheckpointSampleLinearize
 from bob.bio.base.mixins.legacy import LegacyProcessorMixin, LegacyAlgorithmMixin
+from bob.bio.base.transformers import CheckpointSampleLinearize, CheckpointSamplePCA
 from bob.bio.base.pipelines.vanilla_biometrics.legacy import LegacyBiometricAlgorithm
 
 
-class CheckpointSamplePCA(CheckpointMixin, SampleMixin, PCA):
-    """
-    Enables SAMPLE and CHECKPOINTIN handling for https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
-    """
-
-    pass
-
-
 #### PREPROCESSOR LEGACY ###
 import functools
 
diff --git a/bob/bio/base/config/examples/pca_atnt.py b/bob/bio/base/config/examples/pca_atnt.py
index 68c055124ee31e3dad9b9f027884ccdc38808c34..a72d9577873c8d7fe76502223867ca64b1b0b46b 100644
--- a/bob/bio/base/config/examples/pca_atnt.py
+++ b/bob/bio/base/config/examples/pca_atnt.py
@@ -1,22 +1,14 @@
 #from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector, AlgorithmAdaptor
 
-import bob.db.atnt
+import bob.bio.face
 from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector
-database = DatabaseConnector(bob.db.atnt.Database(), protocol="Default")
+database = DatabaseConnector(bob.bio.face.database.AtntBioDatabase(original_directory="./atnt"), protocol="Default")
 
 from sklearn.pipeline import Pipeline, make_pipeline
-from sklearn.decomposition import PCA
-
 from bob.pipelines.mixins import CheckpointMixin, SampleMixin
-from bob.bio.base.mixins import CheckpointSampleLinearize
+from bob.bio.base.transformers import CheckpointSampleLinearize, CheckpointSamplePCA
 
-class CheckpointSamplePCA(CheckpointMixin, SampleMixin, PCA):
-    """
-    Enables SAMPLE and CHECKPOINTIN handling for https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
-    """
-    pass
 
-#extractor = make_pipeline([CheckpointSampleLinearize(), CheckpointSamplePCA()])
 from bob.pipelines.mixins import dask_it
 extractor = Pipeline(steps=[('0',CheckpointSampleLinearize(features_dir="./example/extractor0")), 
 	                        ('1',CheckpointSamplePCA(features_dir="./example/extractor1", model_path="./example/pca.pkl"))])
diff --git a/bob/bio/base/config/examples/pca_atnt_legacy.py b/bob/bio/base/config/examples/pca_atnt_legacy.py
index 8dbd0ddc302d736d5d53865fe28a8d2e6ad60555..b895eba8d35869cd22ecb50ed08668e3dd51e604 100644
--- a/bob/bio/base/config/examples/pca_atnt_legacy.py
+++ b/bob/bio/base/config/examples/pca_atnt_legacy.py
@@ -1,24 +1,16 @@
 # from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector, AlgorithmAdaptor
 
-import bob.db.atnt
+
+### DATABASE
+import bob.bio.face
 from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector
+database = DatabaseConnector(bob.bio.face.database.AtntBioDatabase(original_directory="./atnt"), protocol="Default")
 
-database = DatabaseConnector(bob.db.atnt.Database(), protocol="Default")
 
 from sklearn.pipeline import Pipeline, make_pipeline
-from sklearn.decomposition import PCA
-
 from bob.pipelines.mixins import CheckpointMixin, SampleMixin
-from bob.bio.base.mixins import CheckpointSampleLinearize
-from bob.bio.base.mixins.legacy import LegacyProcessorMixin
-
-
-class CheckpointSamplePCA(CheckpointMixin, SampleMixin, PCA):
-    """
-    Enables SAMPLE and CHECKPOINTIN handling for https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
-    """
-
-    pass
+from bob.bio.base.mixins.legacy import LegacyProcessorMixin, LegacyAlgorithmMixin
+from bob.bio.base.transformers import CheckpointSampleLinearize, CheckpointSamplePCA
 
 
 #### PREPROCESSOR LEGACY ###
@@ -48,7 +40,6 @@ face_cropper = functools.partial(
 
 
 from bob.pipelines.mixins import mix_me_up
-
 preprocessor = mix_me_up((CheckpointMixin, SampleMixin), LegacyProcessorMixin)
 
 from bob.pipelines.mixins import dask_it
@@ -75,7 +66,5 @@ from bob.bio.base.pipelines.vanilla_biometrics.biometric_algorithm import (
 
 class CheckpointDistance(BiometricAlgorithmCheckpointMixin, Distance):
     pass
-
-
 algorithm = CheckpointDistance(features_dir="./example/")
 # algorithm = Distance()
diff --git a/bob/bio/base/config/examples/pca_mobio-male.py b/bob/bio/base/config/examples/pca_mobio-male.py
index 4d3e71a89556183a6f01d0098b94ab13c5162078..440d4e97d1c46e4e41c52f49f84ebaff768a8fdf 100644
--- a/bob/bio/base/config/examples/pca_mobio-male.py
+++ b/bob/bio/base/config/examples/pca_mobio-male.py
@@ -7,12 +7,15 @@ import bob.bio.face
 
 from bob.bio.base.mixins.legacy import LegacyProcessorMixin, LegacyAlgorithmMixin
 from bob.bio.base.pipelines.vanilla_biometrics.legacy import LegacyBiometricAlgorithm
+from bob.bio.base.transformers import CheckpointSamplePCA
 
 import os
-base_dir = "/idiap/temp/tpereira/mobio/pca"
-#base_dir = "./example"
+#base_dir = "/idiap/temp/tpereira/mobio/pca"
+base_dir = "./example"
 
 
+### DATABASE
+
 original_directory=rc['bob.db.mobio.directory']
 annotation_directory=rc['bob.db.mobio.annotation_directory']
 database = DatabaseConnectorAnnotated(bob.bio.face.database.mobio.MobioBioDatabase(
@@ -26,13 +29,8 @@ from sklearn.pipeline import Pipeline, make_pipeline
 from sklearn.decomposition import PCA
 
 from bob.pipelines.mixins import CheckpointMixin, SampleMixin
-from bob.bio.base.mixins import CheckpointSampleLinearize
+from bob.bio.base.transformers import CheckpointSampleLinearize
 
-class CheckpointSamplePCA(CheckpointMixin, SampleMixin, PCA):
-    """
-    Enables SAMPLE and CHECKPOINTIN handling for https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
-    """
-    pass
 
 
 
@@ -63,10 +61,9 @@ extractor = Pipeline(steps=[
                             ('1',CheckpointSampleLinearize(features_dir=os.path.join(base_dir,"extractor1"))), 
 	                        ('2',CheckpointSamplePCA(features_dir=os.path.join(base_dir,"extractor2"), model_path=os.path.join(base_dir,"pca.pkl")))
 	                       ])
-extractor = dask_it(extractor, npartitions=48)
+#extractor = dask_it(extractor, npartitions=48)
 
 from bob.bio.base.pipelines.vanilla_biometrics.biometric_algorithm import Distance, BiometricAlgorithmCheckpointMixin
 
 class CheckpointDistance(BiometricAlgorithmCheckpointMixin, Distance):  pass
 algorithm = CheckpointDistance(features_dir=base_dir)
-#algorithm = Distance()
diff --git a/bob/bio/base/pipelines/vanilla_biometrics/biometric_algorithm.py b/bob/bio/base/pipelines/vanilla_biometrics/biometric_algorithm.py
index 735e7699d587464125fd5e8eb6dae25a81592fad..5853582d87a43e61b06926bd817546ebf15b192e 100644
--- a/bob/bio/base/pipelines/vanilla_biometrics/biometric_algorithm.py
+++ b/bob/bio/base/pipelines/vanilla_biometrics/biometric_algorithm.py
@@ -135,7 +135,6 @@ class BiometricAlgorithm(object):
         for subprobe_id, (s, parent) in enumerate(zip(data, sampleset.samples)):
             # Creating one sample per comparison
             subprobe_scores = []
-
             for ref in [
                 r for r in biometric_references if r.key in sampleset.references
             ]:
diff --git a/bob/bio/base/pipelines/vanilla_biometrics/legacy.py b/bob/bio/base/pipelines/vanilla_biometrics/legacy.py
index 2ab9b5532b342dd09b016a41a44d6abf8d0b1cef..e2a700fba760d4f77cf1c18d23dba83ea48345ff 100644
--- a/bob/bio/base/pipelines/vanilla_biometrics/legacy.py
+++ b/bob/bio/base/pipelines/vanilla_biometrics/legacy.py
@@ -186,7 +186,7 @@ class DatabaseConnector:
                         references=[str(m)],
                     )
                 else:
-                    probes[o.id].references.append(m)
+                    probes[o.id].references.append(str(m))
 
         return list(probes.values())