diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f26a01e948cdc392cfffaa8447e4eeb8aac6ff48..3c382ceb429faf36f4ca20c84c6386c95519597d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,10 +33,13 @@ variables:
   variables: &build_variables
     BOB_DOCUMENTATION_SERVER: "http://www.idiap.ch/software/bob/docs/latest/bob/%s/master/"
   script:
-    - ./bin/buildout
+    - ./bin/buildout -c develop.cfg
     - if [ -x ./bin/bob_dbmanage.py ]; then ./bin/bob_dbmanage.py all download --force; fi
     - ./bin/sphinx-build doc sphinx
     - ./bin/python setup.py bdist_wheel --python-tag ${WHEEL_TAG}
+    - cd ./src/bob.bio.base
+    - ../../bin/python setup.py bdist_wheel --dist-dir ../../dist --python-tag ${WHEEL_TAG}
+    - cd ../../
   after_script:
     - rm -rf ${CONDA_PREFIX}
   artifacts:
@@ -76,7 +79,7 @@ variables:
   before_script:
     - ./bootstrap-conda.sh ${CONDA_FOLDER} ${PYTHON_VER} ${CONDA_PREFIX}
     - source ${CONDA_FOLDER}/bin/activate ${CONDA_PREFIX}
-    - pip install --use-wheel --no-index --pre dist/*.whl
+    - pip install --use-wheel --upgrade --no-index --pre dist/*.whl
   script:
     - cd ${CONDA_PREFIX}
     - python -c "from ${CI_PROJECT_NAME} import get_config; print(get_config())"
diff --git a/bob/bio/vein/configurations/database/__init__.py b/bob/bio/vein/configurations/database/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/bob/bio/vein/configurations/database/biowave_test.py b/bob/bio/vein/configurations/database/biowave_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..0fd6d9b23a1d2d3e751afc7ce8dc5c075642d316
--- /dev/null
+++ b/bob/bio/vein/configurations/database/biowave_test.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+from bob.bio.vein.database import BiowaveTestBioDatabase
+
+biowave_test_image_directory = "[YOUR_BIOWAVE_TEST_IMAGE_DIRECTORY]"
+
+database = BiowaveTestBioDatabase(
+    original_directory=biowave_test_image_directory,
+    original_extension='.png',
+    protocol='all'
+)
diff --git a/bob/bio/vein/configurations/database/utfvp.py b/bob/bio/vein/configurations/database/utfvp.py
new file mode 100644
index 0000000000000000000000000000000000000000..87e5b246f1b7fdc9f7c6d89264b22e819e63fc7e
--- /dev/null
+++ b/bob/bio/vein/configurations/database/utfvp.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+from bob.bio.vein.database import UtfvpBioDatabase
+
+utfvp_directory = "[YOUR_UTFVP_DIRECTORY]"
+
+database = UtfvpBioDatabase(
+    original_directory = utfvp_directory,
+    extension = ".png",
+    )    
+
diff --git a/bob/bio/vein/configurations/database/verafinger.py b/bob/bio/vein/configurations/database/verafinger.py
new file mode 100644
index 0000000000000000000000000000000000000000..4c5228b47d0bbf99d335e7bf44daa5f77d21ea86
--- /dev/null
+++ b/bob/bio/vein/configurations/database/verafinger.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+from bob.bio.vein.database import VerafingerBioDatabase
+
+vera_finger_directory = "[YOUR_VERAFINGER_DIRECTORY]"
+
+database = VerafingerBioDatabase(
+    original_directory = vera_finger_directory,
+    original_extension = '.png',
+    )
+
diff --git a/bob/bio/vein/database/__init__.py b/bob/bio/vein/database/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e648729a12665612bedd501f52e0433613ae271f
--- /dev/null
+++ b/bob/bio/vein/database/__init__.py
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+# vim: set fileencoding=utf-8 :
+
+
+from .biowave_test import BiowaveTestBioDatabase
+from .verafinger import VerafingerBioDatabase
+from .utfvp import UtfvpBioDatabase
+
+# gets sphinx autodoc done right - don't remove it
+__all__ = [_ for _ in dir() if not _.startswith('_')]
diff --git a/bob/bio/vein/database/biowave_test.py b/bob/bio/vein/database/biowave_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..1d37f08fac12d8cbfaae4a398391ad3b4b87bbc1
--- /dev/null
+++ b/bob/bio/vein/database/biowave_test.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+# vim: set fileencoding=utf-8 :
+# Teodors Eglitis <teodors.eglitis@idiap.ch>
+# Wed 20 Jul
+
+"""
+  BIOWAVE_TEST database implementation of bob.bio.db.BioDatabase interface.
+  It is an extension of an SQL-based database interface, which directly talks to BIOWAVE_TEST database for
+  verification experiments (good to use in bob.bio.base framework).
+"""
+
+from .database import VeinBioFile
+from bob.bio.base.database import BioDatabase, BioFile
+
+
+class BiowaveTestBioDatabase(BioDatabase):
+    """
+    Implements verification API for querying BIOWAVE_TEST database.
+    """
+
+    def __init__(
+            self,
+            **kwargs
+    ):
+        # before it was also "name" in the init.
+        #
+        # the BioDatabase class is defined in:
+        # bob.bio.db/bob/bio/db/database.py
+        #
+        # In this -- the high level implementation we call base class constructors to
+        # open a session to the database. We use **kwargs so that we could pass
+        # the arguments later, e.g. from the default database configuration.
+
+        super(BiowaveTestBioDatabase, self).__init__(name='biowave_test', **kwargs)
+
+        from bob.db.biowave_test.query import Database as LowLevelDatabase
+        self.__db = LowLevelDatabase()
+
+    def client_id_from_model_id(self, model_id, group='dev'):
+        """Required as ``model_id != client_id`` on this database"""
+        return self.__db.client_id_from_model_id(model_id)
+
+    def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
+        return self.__db.model_ids(protocol=protocol, groups=groups)
+
+    def objects(self, protocol=None, groups=None, purposes=None, model_ids=None, **kwargs):
+        retval = self.__db.objects(protocol=protocol, groups=groups, purposes=purposes, model_ids=model_ids)
+        return [VeinBioFile(f) for f in retval]
+
+    # the methodes are derived from:
+    # bob.bio.db/bob/bio/db/database.py
+    # this means that methodes defined there need to have certain arguments, e.g.:
+    # model_ids_with_protocol:
+    #    groups;
+    #    protocol;
+    # objects:
+    #    groups;
+    #    protocol;
+    #    purposes;
+    #    model_ids;
+    # If you have some other arguments to pass, use **kwargs, if your methods doesn't have some
+    # arguments, just don't pass them (e.g. see the model_ids).
diff --git a/bob/bio/vein/database/database.py b/bob/bio/vein/database/database.py
new file mode 100644
index 0000000000000000000000000000000000000000..b20eaab924d86305f07f43eeaf9fea8e015bb24f
--- /dev/null
+++ b/bob/bio/vein/database/database.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python
+# vim: set fileencoding=utf-8 :
+# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
+# Wed 20 July 14:43:22 CEST 2016
+
+"""
+  Verification API for bob.db.voxforge
+"""
+
+from bob.bio.base.database.file import BioFile
+
+
+class VeinBioFile(BioFile):
+    def __init__(self, f):
+        """
+        Initializes this File object with an File equivalent for
+        VoxForge database.
+        """
+        super(VeinBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
+
+        self.__f = f
+
+
diff --git a/bob/bio/vein/database/utfvp.py b/bob/bio/vein/database/utfvp.py
new file mode 100644
index 0000000000000000000000000000000000000000..548aea122919337b7a214cf1d90d67348a896d9f
--- /dev/null
+++ b/bob/bio/vein/database/utfvp.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+# vim: set fileencoding=utf-8 :
+
+from .database import VeinBioFile
+from bob.bio.base.database import BioDatabase, BioFile
+
+
+class UtfvpBioDatabase(BioDatabase):
+    """
+    Implements verification API for querying UTFVP Fingervein database.
+    """
+
+    def __init__(self, **kwargs):
+
+        super(UtfvpBioDatabase, self).__init__(name='utfvp',
+            **kwargs)
+        from bob.db.utfvp.query import Database as LowLevelDatabase
+        self.__db = LowLevelDatabase()
+
+    def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
+        protocol = protocol if protocol is not None else self.protocol
+        return self.__db.model_ids(groups=groups, protocol=protocol)
+
+    def objects(self, groups=None, protocol=None, purposes=None,
+        model_ids=None, **kwargs):
+
+        retval = self.__db.objects(groups=groups, protocol=protocol,
+            purposes=purposes, model_ids=model_ids, **kwargs)
+        return [VeinBioFile(f) for f in retval]
diff --git a/bob/bio/vein/database/verafinger.py b/bob/bio/vein/database/verafinger.py
new file mode 100644
index 0000000000000000000000000000000000000000..c4906bbf950f2e45467eadbbc4d9cb49089b15c2
--- /dev/null
+++ b/bob/bio/vein/database/verafinger.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+# vim: set fileencoding=utf-8 :
+
+
+from .database import VeinBioFile
+from bob.bio.base.database import BioDatabase, BioFile
+
+
+class VerafingerBioDatabase(BioDatabase):
+    """
+    Implements verification API for querying Vera Fingervein database.
+    """
+
+    def __init__(self, **kwargs):
+
+        super(VerafingerBioDatabase, self).__init__(name='verafinger',
+            **kwargs)
+        from bob.db.verafinger.query import Database as LowLevelDatabase
+        self.__db = LowLevelDatabase()
+
+        self.low_level_group_names = ('train', 'dev')
+        self.high_level_group_names = ('world', 'dev')
+
+    def groups(self):
+
+        return self.convert_names_to_highlevel(self.__db.groups(),
+            self.low_level_group_names, self.high_level_group_names)
+
+    def client_id_from_model_id(self, model_id, group='dev'):
+        """Required as ``model_id != client_id`` on this database"""
+
+        return self.__db.finger_name_from_model_id(model_id)
+
+    def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
+
+        groups = self.convert_names_to_lowlevel(groups,
+            self.low_level_group_names, self.high_level_group_names)
+        return self.__db.model_ids(groups=groups, protocol=protocol)
+
+    def objects(self, groups=None, protocol=None, purposes=None,
+        model_ids=None, **kwargs):
+
+        groups = self.convert_names_to_lowlevel(groups,
+            self.low_level_group_names, self.high_level_group_names)
+        retval = self.__db.objects(groups=groups, protocol=protocol,
+            purposes=purposes, model_ids=model_ids, **kwargs)
+        return [VeinBioFile(f) for f in retval]
diff --git a/develop.cfg b/develop.cfg
index 789100ef8c376b9fec1bcff976ba79679d22bd9e..19551f8afa0d6f274403d1d092acb35e71bf088f 100644
--- a/develop.cfg
+++ b/develop.cfg
@@ -1,5 +1,6 @@
 ; vim: set fileencoding=utf-8 :
-; Fri 19 Aug 2016 13:14:15 CEST
+; Manuel Guenther <manuel.guenther@idiap.ch>
+; Thu Oct  9 16:51:06 CEST 2014
 
 [buildout]
 parts = scripts
@@ -12,7 +13,6 @@ eggs = bob.bio.vein
 
 extensions = bob.buildout
              mr.developer
-
 auto-checkout = *
 develop = src/bob.extension
           src/bob.blitz
@@ -28,10 +28,10 @@ develop = src/bob.extension
           src/bob.db.verafinger
           src/bob.db.utfvp
           src/bob.db.putvein
+          src/bob.db.biowave_test
           src/bob.learn.activation
           src/bob.learn.linear
           src/bob.learn.em
-          src/bob.bio.db
           src/bob.bio.base
           .
 
@@ -55,11 +55,13 @@ bob.db.base = git git@gitlab.idiap.ch:bob/bob.db.base
 bob.db.verafinger = git git@gitlab.idiap.ch:bob/bob.db.verafinger
 bob.db.utfvp = git git@gitlab.idiap.ch:bob/bob.db.utfvp
 bob.db.putvein = git git@gitlab.idiap.ch:bob/bob.db.putvein
+bob.db.biowave_test = git git@gitlab.idiap.ch:bob/bob.db.biowave_test
 bob.learn.activation = git git@gitlab.idiap.ch:bob/bob.learn.activation
 bob.learn.linear = git git@gitlab.idiap.ch:bob/bob.learn.linear
 bob.learn.em = git git@gitlab.idiap.ch:bob/bob.learn.em
-bob.bio.db = git git@gitlab.idiap.ch:bob/bob.bio.db
-bob.bio.base = git git@gitlab.idiap.ch:bob/bob.bio.base
+bob.bio.base = git git@gitlab.idiap.ch:bob/bob.bio.base branch=issue-8-remove-database-configuration
+
 
 [scripts]
 recipe = bob.buildout:scripts
+dependent-scripts = true
diff --git a/requirements.txt b/requirements.txt
index 28095bc1f293b9a84737b63301ca2f8707656944..5b4ee81863853e897b7413582460194e3e55677b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9,7 +9,7 @@ bob.io.matlab
 bob.io.image
 bob.ip.base
 bob.bio.base
-bob.bio.db
 bob.db.utfvp
 bob.db.verafinger
 bob.db.putvein
+bob.db.biowave_test
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 21803e5338beb550fb412499f6f411d94534569d..f875c43ef6a6ad91850ea461cb0bbc8ce88aeaf7 100644
--- a/setup.py
+++ b/setup.py
@@ -32,8 +32,8 @@ setup(
     entry_points={
 
       'bob.bio.database': [
-        'verafinger = bob.bio.db.default_configs.verafinger:database',
-        'utfvp = bob.bio.db.default_configs.utfvp:database',
+        'verafinger = bob.bio.base.configurations.database.verafinger:database',
+        'utfvp = bob.bio.base.configurations.database.utfvp:database',
         ],
 
       'bob.bio.preprocessor': [