diff --git a/bob/bio/base/algorithm/Algorithm.py b/bob/bio/base/algorithm/Algorithm.py
index 990c2093937a43dab78388d38e0a3b0996b05e82..38834b8fa45d6484f1c9927d250f2cd5e654bb78 100644
--- a/bob/bio/base/algorithm/Algorithm.py
+++ b/bob/bio/base/algorithm/Algorithm.py
@@ -7,7 +7,7 @@ import numpy
 import os
 from .. import utils
 
-class Algorithm:
+class Algorithm (object):
   """This is the base class for all biometric recognition algorithms.
   It defines the minimum requirements for all derived algorithm classes.
 
diff --git a/bob/bio/base/algorithm/BIC.py b/bob/bio/base/algorithm/BIC.py
index 2348e5cdbf5a6df9a73b74ce71b6e50abd910fa0..c15b5e58c04ec064db1c14886e4e1febc8799326 100644
--- a/bob/bio/base/algorithm/BIC.py
+++ b/bob/bio/base/algorithm/BIC.py
@@ -73,8 +73,7 @@ class BIC(Algorithm):
     ):
 
         # call base class function and register that this tool requires training for the enrollment
-        Algorithm.__init__(
-            self,
+        super(BIC, self).__init__(
             requires_enroller_training=True,
 
             comparison_function=str(comparison_function),
diff --git a/bob/bio/base/algorithm/Distance.py b/bob/bio/base/algorithm/Distance.py
index efde5502b15a6f60701c477a7b03bb92d743f6d0..f902dcd25c559204b8ab331eb05a0f0e97f9a17d 100644
--- a/bob/bio/base/algorithm/Distance.py
+++ b/bob/bio/base/algorithm/Distance.py
@@ -37,8 +37,7 @@ class Distance (Algorithm):
   ):
 
     # call base class constructor and register that the algorithm performs a projection
-    Algorithm.__init__(
-        self,
+    super(Distance, self).__init__(
         distance_function = str(distance_function),
         is_distance_function = is_distance_function,
 
diff --git a/bob/bio/base/algorithm/LDA.py b/bob/bio/base/algorithm/LDA.py
index 745092d0ddfa26fe19bd3ac79de8085c29496bb7..b0cb34b983ff75454bb36a024da4f3470a955d04 100644
--- a/bob/bio/base/algorithm/LDA.py
+++ b/bob/bio/base/algorithm/LDA.py
@@ -65,8 +65,7 @@ class LDA (Algorithm):
   ):
 
     # call base class constructor and register that the LDA tool performs projection and need the training features split by client
-    Algorithm.__init__(
-        self,
+    super(LDA, self).__init__(
         performs_projection = True,
         split_training_features_by_client = True,
 
diff --git a/bob/bio/base/algorithm/PCA.py b/bob/bio/base/algorithm/PCA.py
index ce6d6ee2b33d19b66441c7b3b6fc49c61dc87f16..d62faf5cafd49235826c234ddf6e47461c4f4fb1 100644
--- a/bob/bio/base/algorithm/PCA.py
+++ b/bob/bio/base/algorithm/PCA.py
@@ -49,8 +49,7 @@ class PCA (Algorithm):
   ):
 
     # call base class constructor and register that the algorithm performs a projection
-    Algorithm.__init__(
-        self,
+    super(PCA, self).__init__(
         performs_projection = True,
 
         subspace_dimension = subspace_dimension,
diff --git a/bob/bio/base/algorithm/PLDA.py b/bob/bio/base/algorithm/PLDA.py
index a82c8298a5688ffe22374bc8298176743d60f512..e2350d6b2bb4e2dc4c68f7adebbbd3bccc1f0aa1 100644
--- a/bob/bio/base/algorithm/PLDA.py
+++ b/bob/bio/base/algorithm/PLDA.py
@@ -37,8 +37,7 @@ class PLDA (Algorithm):
 
     """Initializes the local (PCA-)PLDA tool chain with the given file selector object"""
     # call base class constructor and register that this class requires training for enrollment
-    Algorithm.__init__(
-        self,
+    super(PLDA, self).__init__(
         requires_enroller_training = True,
 
         subspace_dimension_of_f = subspace_dimension_of_f, # Size of subspace F
@@ -113,7 +112,7 @@ class PLDA (Algorithm):
     """Generates the PLDA base model from a list of arrays (one per identity),
        and a set of training parameters. If PCA is requested, it is trained on the same data.
        Both the trained PLDABase and the PCA machine are written."""
-    
+
     # arrange PLDA training data
     training_features = self._arrange_data(training_features)
 
diff --git a/bob/bio/base/extractor/Extractor.py b/bob/bio/base/extractor/Extractor.py
index 251d6283e2a1f2e68b9e364726379e7f79fc32bc..fc09fb62135f97465942d16e75dd576631aa523e 100644
--- a/bob/bio/base/extractor/Extractor.py
+++ b/bob/bio/base/extractor/Extractor.py
@@ -7,7 +7,7 @@ import os
 
 from .. import utils
 
-class Extractor:
+class Extractor (object):
   """This is the base class for all feature extractors.
   It defines the minimum requirements that a derived feature extractor class need to implement.
 
diff --git a/bob/bio/base/extractor/Linearize.py b/bob/bio/base/extractor/Linearize.py
index e69de5d1b953120ab72191464a940ce5a80557ff..27c5ea23821a6a0b14ffaca5f746bb8e506ff7c3 100644
--- a/bob/bio/base/extractor/Linearize.py
+++ b/bob/bio/base/extractor/Linearize.py
@@ -15,7 +15,7 @@ class Linearize(Extractor):
 
     def __init__(self, dtype=None):
         """If the ``dtype`` parameter is given, it specifies the data type that is enforced for the features."""
-        Extractor.__init__(self, dtype=dtype)
+        super(Linearize, self).__init__(dtype=dtype)
         self.dtype = dtype
 
     def __call__(self, data):
diff --git a/bob/bio/base/grid.py b/bob/bio/base/grid.py
index def7125b0920f830f3de2dc743499d41da71efc9..6390661377eb5fbc73383d8c0df8c8c965bae3ff 100644
--- a/bob/bio/base/grid.py
+++ b/bob/bio/base/grid.py
@@ -21,7 +21,7 @@ PREDEFINED_QUEUES = {
 
 from . import utils
 
-class Grid:
+class Grid (object):
   """This class is defining the options that are required to submit parallel jobs to the SGE grid, or jobs to the local queue.
 
   If the given ``grid_type`` is ``'sge'`` (the default), this configuration is set up to submit algorithms to the SGE grid.
diff --git a/bob/bio/base/preprocessor/Filename.py b/bob/bio/base/preprocessor/Filename.py
index 4c0fddd5c423555eb2357206122ac48762f6359a..52429c1c476327f479ac5465900a55f644537ce9 100644
--- a/bob/bio/base/preprocessor/Filename.py
+++ b/bob/bio/base/preprocessor/Filename.py
@@ -15,7 +15,7 @@ class Filename (Preprocessor):
 
   def __init__(self):
     # call base class constructor, using a custom ``read_original_data`` that does nothing and always returns None
-    Preprocessor.__init__(self, writes_data=False, read_original_data = lambda x,y,z: None)
+    super(Filename, self).__init__(writes_data=False, read_original_data = lambda x,y,z: None)
 
 
   # The call function (i.e. the operator() in C++ terms)
diff --git a/bob/bio/base/preprocessor/Preprocessor.py b/bob/bio/base/preprocessor/Preprocessor.py
index ab3bb1c6fff0fc97aa8035f324e6b46eeed33993..b8382b08b583af172afc386e8caf343f2e92ef43 100644
--- a/bob/bio/base/preprocessor/Preprocessor.py
+++ b/bob/bio/base/preprocessor/Preprocessor.py
@@ -6,7 +6,7 @@
 from .. import utils
 
 
-class Preprocessor:
+class Preprocessor (object):
     """This is the base class for all preprocessors.
     It defines the minimum requirements for all derived proprocessor classes.
 
diff --git a/bob/bio/base/tools/grid.py b/bob/bio/base/tools/grid.py
index cb04d88a12530adae3e7aad7fb9d458583097245..909ac2091143548f8bcfe1e79be19e930dea7b9e 100644
--- a/bob/bio/base/tools/grid.py
+++ b/bob/bio/base/tools/grid.py
@@ -32,7 +32,7 @@ def indices(list_to_split, number_of_parallel_jobs, task_id=None):
     return (start, end)
 
 
-class GridSubmission:
+class GridSubmission (object):
   def __init__(self, args, command_line_parameters, executable = 'verify.py', first_fake_job_id = 0):
     # find, where the executable is installed
     import bob.extension
@@ -49,7 +49,7 @@ class GridSubmission:
 
     if args.grid is not None:
       assert isinstance(args.grid, grid.Grid)
-      
+
       self.env = args.env #Fetching the enviroment variable
 
       # find, where jman is installed