diff --git a/bob/bio/base/database/database.py b/bob/bio/base/database/database.py
index 7d0445eaa6c35c2ed52f03fc85d8736b38802621..7620ef507ed1008c7224af6f04074883106d933f 100644
--- a/bob/bio/base/database/database.py
+++ b/bob/bio/base/database/database.py
@@ -151,9 +151,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
 
         return "%s(%s)" % (str(self.__class__), params)
 
-    ###########################################################################
-    # Helper functions that you might want to use in derived classes
-    ###########################################################################
     def replace_directories(self, replacements=None):
         """This helper function replaces the ``original_directory`` and the ``annotation_directory`` of the database with the directories read from the given replacement file.
 
@@ -203,27 +200,9 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
         except AttributeError:
             pass
 
-    def sort(self, files):
-        """sort(files) -> sorted
-
-        Returns a sorted version of the given list of File's (or other structures that define an 'id' data member).
-        The files will be sorted according to their id, and duplicate entries will be removed.
-
-        **Parameters:**
-
-        files : [:py:class:`bob.bio.base.database.BioFile`]
-          The list of files to be uniquified and sorted.
-
-        **Returns:**
-
-        sorted : [:py:class:`bob.bio.base.database.BioFile`]
-          The sorted list of files, with duplicate `BioFile.id`\s being removed.
-        """
-        # sort files using their sort function
-        sorted_files = sorted(files)
-        # remove duplicates
-        return [f for i, f in enumerate(sorted_files) if not i or sorted_files[i - 1].id != f.id]
-
+    ###########################################################################
+    # Helper functions that you might want to use in derived classes
+    ###########################################################################
     def uses_probe_file_sets(self, protocol=None):
         """Defines if, for the current protocol, the database uses several probe files to generate a score.
         Returns True if the given protocol specifies file sets for probes, instead of a single probe file.
@@ -258,31 +237,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
             files_by_clients.append(client_files[client])
         return files_by_clients
 
-    def annotations(self, file):
-        """
-        Returns the annotations for the given File object, if available.
-        It uses `bob.db.base.read_annotation_file` to load the annotations.
-
-        **Parameters:**
-
-        file : :py:class:`bob.bio.base.database.BioFile`
-          The file for which annotations should be returned.
-
-        **Returns:**
-
-        annots : dict or None
-          The annotations for the file, if available.
-        """
-        if self.annotation_directory:
-            try:
-                from bob.db.base.annotations import read_annotation_file
-                annotation_path = os.path.join(self.annotation_directory, file.path + self.annotation_extension)
-                return read_annotation_file(annotation_path, self.annotation_type)
-            except ImportError as e:
-                raise NotImplementedError(str(e) + " Annotations are not read." % e)
-
-        return None
-
     def file_names(self, files, directory, extension):
         """file_names(files, directory, extension) -> paths
 
@@ -313,26 +267,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
             # List of files, do not remove duplicates
             return [f.make_path(directory, extension) for f in files]
 
-    def original_file_names(self, files):
-        """original_file_names(files) -> paths
-
-        Returns the full path of the original data of the given File objects.
-
-        **Parameters:**
-
-        files : [:py:class:`bob.bio.base.database.BioFile`]
-          The list of file object to retrieve the original data file names for.
-
-        **Returns:**
-
-        paths : [str] or [[str]]
-          The paths extracted for the files, in the same order.
-          If this database provides file sets, a list of lists of file names is returned, one sub-list for each file set.
-        """
-        assert self.original_directory is not None
-        assert self.original_extension is not None
-        return self.file_names(files, self.original_directory, self.original_extension)
-
     #################################################################
     ###### Methods to be overwritten by derived classes #############
     #################################################################
@@ -356,23 +290,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
         """
         raise NotImplementedError("Please implement this function in derived classes")
 
-    def model_ids(self, groups='dev'):
-        """model_ids(group = 'dev') -> ids
-
-        Returns a list of model ids for the given group, respecting the current protocol.
-
-        **Parameters:**
-
-        group : one of ``('dev', 'eval')``
-          The group to get the model ids for.
-
-        **Returns:**
-
-        ids : [int] or [str]
-          The list of (unique) model ids for models of the given group.
-        """
-        return sorted(self.model_ids_with_protocol(groups=groups, protocol=self.protocol))
-
     @abc.abstractmethod
     def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
         """This function returns lists of File objects, which fulfill the given restrictions.
@@ -401,31 +318,44 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
         """
         raise NotImplementedError("This function must be implemented in your derived class.")
 
+    @abc.abstractmethod
+    def annotations(self, file):
+        """
+        Returns the annotations for the given File object, if available.
+        It uses `bob.db.base.read_annotation_file` to load the annotations.
+
+        **Parameters:**
+
+        file : :py:class:`bob.bio.base.database.BioFile`
+          The file for which annotations should be returned.
+
+        **Returns:**
+
+        annots : dict or None
+          The annotations for the file, if available.
+        """
+        raise NotImplementedError("This function must be implemented in your derived class.")
+
     #################################################################
     ######### Methods to provide common functionality ###############
     #################################################################
 
-    def original_file_name(self, file):
-        """This function returns the original file name for the given File object.
+    def model_ids(self, groups='dev'):
+        """model_ids(group = 'dev') -> ids
 
-        Keyword parameters:
+        Returns a list of model ids for the given group, respecting the current protocol.
+
+        **Parameters:**
 
-        file : :py:class:`bob.bio.base.database.BioFile` or a derivative
-          The File objects for which the file name should be retrieved
+        group : one of ``('dev', 'eval')``
+          The group to get the model ids for.
 
-        Return value : str
-          The original file name for the given File object
+        **Returns:**
+
+        ids : [int] or [str]
+          The list of (unique) model ids for models of the given group.
         """
-        # check if directory is set
-        if not self.original_directory or not self.original_extension:
-            raise ValueError(
-                "The original_directory and/or the original_extension were not specified in the constructor.")
-        # extract file name
-        file_name = file.make_path(self.original_directory, self.original_extension)
-        if not self.check_existence or os.path.exists(file_name):
-            return file_name
-        raise ValueError("The file '%s' was not found. Please check the original directory '%s' and extension '%s'?" % (
-            file_name, self.original_directory, self.original_extension))
+        return sorted(self.model_ids_with_protocol(groups=groups, protocol=self.protocol))
 
     def all_files(self, groups=None):
         """all_files(groups=None) -> files
diff --git a/bob/bio/base/test/dummy/database.py b/bob/bio/base/test/dummy/database.py
index e8cfac92044055f84a343cae0a226b92a9fb94f8..9c84e23bdbb79f0caf9bd26d15cd8060419fb665 100644
--- a/bob/bio/base/test/dummy/database.py
+++ b/bob/bio/base/test/dummy/database.py
@@ -16,16 +16,16 @@ class DummyDatabase(ZTBioDatabase):
             models_depend_on_protocol=False
         )
         import bob.db.atnt
-        self.__db = bob.db.atnt.Database()
+        self._db = bob.db.atnt.Database()
 
     def _make_bio(self, files):
       return [BioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in files]
 
     def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
-        return self.__db.model_ids(groups, protocol)
+        return self._db.model_ids(groups, protocol)
 
     def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
-        return self._make_bio(self.__db.objects(model_ids, groups, purposes, protocol, **kwargs))
+        return self._make_bio(self._db.objects(model_ids, groups, purposes, protocol, **kwargs))
 
     def tobjects(self, groups=None, protocol=None, model_ids=None, **kwargs):
         return []
@@ -34,7 +34,7 @@ class DummyDatabase(ZTBioDatabase):
         return []
 
     def tmodel_ids_with_protocol(self, protocol=None, groups=None, **kwargs):
-        return self.__db.model_ids(groups)
+        return self._db.model_ids(groups)
 
     def t_enroll_files(self, t_model_id, group='dev'):
         return self.enroll_files(t_model_id, group)
@@ -42,4 +42,8 @@ class DummyDatabase(ZTBioDatabase):
     def z_probe_files(self, group='dev'):
         return self.probe_files(None, group)
 
+    def annotations(self, file):
+        return None
+
+
 database = DummyDatabase()
diff --git a/bob/bio/base/test/dummy/fileset.py b/bob/bio/base/test/dummy/fileset.py
index 4f2c6461b09b5bd15b20975394848cc4918fa288..0d2a7faf489c369e627fd82921e7a8689c0e2639 100644
--- a/bob/bio/base/test/dummy/fileset.py
+++ b/bob/bio/base/test/dummy/fileset.py
@@ -15,7 +15,7 @@ class DummyDatabase(ZTBioDatabase):
             models_depend_on_protocol=False
         )
         import bob.db.atnt
-        self.__db = bob.db.atnt.Database()
+        self._db = bob.db.atnt.Database()
 
     def uses_probe_file_sets(self):
         return True
@@ -31,10 +31,10 @@ class DummyDatabase(ZTBioDatabase):
         return file_sets
 
     def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
-        return self.__db.model_ids(groups, protocol)
+        return self._db.model_ids(groups, protocol)
 
     def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
-        return self._make_bio(self.__db.objects(model_ids, groups, purposes, protocol, **kwargs))
+        return self._make_bio(self._db.objects(model_ids, groups, purposes, protocol, **kwargs))
 
     def tobjects(self, groups=None, protocol=None, model_ids=None, **kwargs):
         return []
@@ -43,7 +43,7 @@ class DummyDatabase(ZTBioDatabase):
         return []
 
     def tmodel_ids_with_protocol(self, protocol=None, groups=None, **kwargs):
-        return self.__db.model_ids(groups)
+        return self._db.model_ids(groups)
 
     def t_enroll_files(self, t_model_id, group='dev'):
         return self.enroll_files(t_model_id, group)
@@ -54,4 +54,8 @@ class DummyDatabase(ZTBioDatabase):
     def z_probe_file_sets(self, group='dev'):
         return self.probe_file_sets(None, group)
 
+    def annotations(self, file):
+        return None
+
+
 database = DummyDatabase()
diff --git a/bob/bio/base/test/dummy/preprocessor.py b/bob/bio/base/test/dummy/preprocessor.py
index fd32e3ce9776efa53e1b638070688b866094b376..7ccfcdcb7bd60750203bcf883b4d38ed1b973cb4 100644
--- a/bob/bio/base/test/dummy/preprocessor.py
+++ b/bob/bio/base/test/dummy/preprocessor.py
@@ -1,5 +1,6 @@
 from bob.bio.base.preprocessor import Preprocessor
 
+
 class DummyPreprocessor (Preprocessor):
   def __init__(self, return_none=False, **kwargs):
     Preprocessor.__init__(self)
@@ -11,4 +12,5 @@ class DummyPreprocessor (Preprocessor):
       return None
     return data
 
+
 preprocessor = DummyPreprocessor()