diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f3a5ecbe298105e23fb0a1ac767dd47a8a058126..ecf8bd848537cb100ce9ec26b2b58ce8e24f2cce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,8 +5,12 @@
 
 # Definition of our build pipeline
 stages:
-  - buildbob
-  - testbob
+  - build
+  - test
+  - docs
+  - wheels
+  - deploy
+
 
 # ---------
 # Templates
@@ -15,32 +19,54 @@ stages:
 # Template for the build stage
 # Needs to run on all supported architectures, platforms and python versions
 .build_template: &build_job
-  stage: buildbob
+  stage: build
   before_script:
     - git clean -ffdx
-    - ./ci/before_build.sh 1 buildout-bob.cfg
+    - mkdir _ci
+    #- curl --silent "https://gitlab.idiap.ch/bob/bob.admin/raw/master/gitlab/install.sh" > _ci/install.sh
+    #- chmod 755 _ci/install.sh
+    #- ./_ci/install.sh _ci #updates
+    - ./_ci/before_build.sh
   script:
-    - ./ci/build.sh buildout-bob.cfg
-    - ./ci/wheels_dependencies.sh ${WHEEL_TAG}
+    - ./_ci/build.sh
   after_script:
-    - ./ci/after_build.sh
+    - ./_ci/after_build.sh
   artifacts:
     expire_in: 1 week
     paths:
+      - _ci/
       - dist/
 
 
 # Template for the test stage - re-installs from uploaded wheels
 # Needs to run on all supported architectures, platforms and python versions
 .test_template: &test_job
-  stage: testbob
+  stage: test
   before_script:
-    - ./ci/before_test.sh 1 buildout-bob.cfg
+    #- ./_ci/install.sh _ci #updates
+    - ./_ci/before_test.sh
   script:
-    - ./ci/test.sh
+    - ./_ci/test.sh
   after_script:
-    - ./ci/after_test.sh
-    
+    - ./_ci/after_test.sh
+
+
+# Template for the wheel uploading stage
+# Needs to run against all combinations of python and operating systems
+.wheels_template: &wheels_job
+  stage: wheels
+  environment: intranet
+  only:
+    - master
+    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
+  before_script:
+    #- ./_ci/install.sh _ci #updates
+    - ./_ci/before_wheels.sh
+  script:
+    - ./_ci/wheels.sh
+  after_script:
+    - ./_ci/after_wheels.sh
+
 
 
 # -------------
@@ -62,3 +88,12 @@ test_linux_27:
     - build_linux_27
   tags:
     - conda-linux
+
+wheels_linux_27:
+  <<: *wheels_job
+  variables: *linux_27_build_variables
+  dependencies:
+    - build_linux_27
+  tags:
+    - conda-linux
+
diff --git a/ci/README.md b/_ci/README.md
old mode 100755
new mode 100644
similarity index 100%
rename from ci/README.md
rename to _ci/README.md
diff --git a/ci/after_build.sh b/_ci/after_build.sh
similarity index 100%
rename from ci/after_build.sh
rename to _ci/after_build.sh
diff --git a/ci/after_deploy.sh b/_ci/after_deploy.sh
similarity index 100%
rename from ci/after_deploy.sh
rename to _ci/after_deploy.sh
diff --git a/ci/after_docs.sh b/_ci/after_docs.sh
similarity index 100%
rename from ci/after_docs.sh
rename to _ci/after_docs.sh
diff --git a/ci/after_test.sh b/_ci/after_test.sh
similarity index 100%
rename from ci/after_test.sh
rename to _ci/after_test.sh
diff --git a/ci/after_wheels.sh b/_ci/after_wheels.sh
similarity index 100%
rename from ci/after_wheels.sh
rename to _ci/after_wheels.sh
diff --git a/ci/before_build.sh b/_ci/before_build.sh
similarity index 66%
rename from ci/before_build.sh
rename to _ci/before_build.sh
index 94bdf880f2a9b4472aea3d835ee078706da5ad10..9f090eccb288ab067390a6a969f21763328f08ed 100755
--- a/ci/before_build.sh
+++ b/_ci/before_build.sh
@@ -3,9 +3,6 @@
 
 source $(dirname ${0})/functions.sh
 
-PIPINSTALL=$1
-CONFIG_FILE=$2
-
 WHEELS_REPOSITORY="${DOCSERVER}/software/bob/wheels/gitlab/"
 WHEELS_SERVER=`echo ${DOCSERVER} | sed 's;https\?://;;'`
 check_env WHEELS_REPOSITORY
@@ -43,22 +40,26 @@ else
   log_info "Using python: ${use_python}"
 fi
 
-if [ "$PIPINSTALL" == 1]; then
-  # Install this package's build dependencies
-  PIPOPTS="--find-links ${WHEELS_REPOSITORY} --trusted-host ${WHEELS_SERVER}"
-  PIPOPTS="${PIPOPTS} --pre --use-wheel --no-index"
-  if [ -e requirements-bob.txt ]; then
-    run_cmd ${use_pip} install ${PIPOPTS} --requirement requirements-bob.txt
-  else
-    log_info "No requirements-bob.txt file found, skipping 'pip install <build-deps>'..."
-  fi
+# Install this package's build dependencies
+PIPOPTS="--find-links ${WHEELS_REPOSITORY} --trusted-host ${WHEELS_SERVER}"
+PIPOPTS="${PIPOPTS} --pre --use-wheel --no-index"
+if [ -e requirements.txt ]; then
+  run_cmd ${use_pip} install ${PIPOPTS} --requirement requirements.txt
+else
+  log_info "No requirements.txt file found, skipping 'pip install <build-deps>'..."
+fi
+
+# Install this package's test dependencies
+if [ -e test-requirements.txt ]; then
+  run_cmd ${use_pip} install ${PIPOPTS} --requirement test-requirements.txt
+else
+  log_info "No test-requirements.txt file found, skipping 'pip install <test-deps>'..."
 fi
 
 # Finally, bootstrap the installation from the new environment
 if [ -e bootstrap-buildout.py ]; then
-  run_cmd ${use_python} bootstrap-buildout.py -c ${CONFIG_FILE}
+  run_cmd ${use_python} bootstrap-buildout.py
 else
   log_error "No bootstrap-buildout.py file found, stopping..."
   exit 1
 fi
-
diff --git a/ci/before_deploy.sh b/_ci/before_deploy.sh
similarity index 100%
rename from ci/before_deploy.sh
rename to _ci/before_deploy.sh
diff --git a/ci/before_docs.sh b/_ci/before_docs.sh
similarity index 100%
rename from ci/before_docs.sh
rename to _ci/before_docs.sh
diff --git a/ci/before_test.sh b/_ci/before_test.sh
similarity index 86%
rename from ci/before_test.sh
rename to _ci/before_test.sh
index 15e164202b96df450a0d190e123096e391101797..3709c10f2ba1b13c92d1b24b23a642033dac1a8c 100755
--- a/ci/before_test.sh
+++ b/_ci/before_test.sh
@@ -3,10 +3,7 @@
 
 source $(dirname ${0})/functions.sh
 
-PIPINSTALL=$1
-CONFIG_FILE=$2
-
-run_cmd $(dirname ${0})/before_build.sh ${PIPINSTALL} ${CONFIG_FILE}
+run_cmd $(dirname ${0})/before_build.sh
 
 # Source the newly created virtualenv
 log_info "$ source ${PREFIX}/bin/activate"
diff --git a/ci/before_wheels.sh b/_ci/before_wheels.sh
similarity index 100%
rename from ci/before_wheels.sh
rename to _ci/before_wheels.sh
diff --git a/_ci/build.sh b/_ci/build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..35f8c3c7833fce64df7ac4b0689f5c7ce7782207
--- /dev/null
+++ b/_ci/build.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# Wed 21 Sep 2016 13:08:05 CEST
+
+source $(dirname ${0})/functions.sh
+
+NIGHTLIES=$1
+
+run_cmd ./bin/buildout
+
+if [ -x ./bin/bob_dbmanage.py ]; then
+  run_cmd ./bin/bob_dbmanage.py all download --force;
+fi
+
+if [ -d ./doc ]; then
+  run_cmd ./bin/sphinx-build -W doc sphinx
+fi
+
+if [${NIGHTLIES} -eq 1]; then
+  
+  ./bin/python setup.py bdist_wheel --dist-dir ./dist  --python-tag ${WHEEL_TAG}
+  #Iterate the dependency files to generate the wheels
+  for f in hack_requirements.txt
+  do
+    while read -r line
+    do
+        dir="src/"$line
+        cd $dir
+        ../../bin/python setup.py bdist_wheel --dist-dir ../../dist --python-tag ${WHEEL_TAG}
+        cd ../../
+    done < "$f"
+  done
+  
+  
+else
+  if [ -z "${WHEEL_TAG}" ]; then
+    # C/C++ extensions
+    run_cmd ./bin/python setup.py bdist_wheel
+  else
+    # Python-only packages
+    run_cmd ./bin/python setup.py bdist_wheel --python-tag ${WHEEL_TAG}
+  fi
+fi
diff --git a/ci/deploy.sh b/_ci/deploy.sh
similarity index 100%
rename from ci/deploy.sh
rename to _ci/deploy.sh
diff --git a/ci/docs.sh b/_ci/docs.sh
similarity index 100%
rename from ci/docs.sh
rename to _ci/docs.sh
diff --git a/ci/functions.sh b/_ci/functions.sh
old mode 100755
new mode 100644
similarity index 100%
rename from ci/functions.sh
rename to _ci/functions.sh
diff --git a/ci/install.sh b/_ci/install.sh
similarity index 100%
rename from ci/install.sh
rename to _ci/install.sh
diff --git a/_ci/test.sh b/_ci/test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2a73151e23a60c5bea56a7458ed56261942280e9
--- /dev/null
+++ b/_ci/test.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+# Wed 21 Sep 2016 13:08:05 CEST
+
+source $(dirname ${0})/functions.sh
+
+run_cmd cd ${PREFIX}
+
+NIGHTLIES=$1
+
+# The tests:
+if [${NIGHTLIES} -eq 1]; then
+  run_cmd ${PREFIX}/bin/python ${BOB_PREFIX_PATH}/bin/coverage run --source=${CI_PROJECT_NAME} ${BOB_PREFIX_PATH}/bin/nosetests -sv bob
+  run_cmd ${PREFIX}/bin/python ${BOB_PREFIX_PATH}/bin/coverage report  
+else
+  run_cmd ${PREFIX}/bin/python ${BOB_PREFIX_PATH}/bin/coverage run --source=${CI_PROJECT_NAME} ${BOB_PREFIX_PATH}/bin/nosetests -sv ${CI_PROJECT_NAME}
+  run_cmd ${PREFIX}/bin/python ${BOB_PREFIX_PATH}/bin/coverage report
+  run_cmd ${PREFIX}/bin/python ${BOB_PREFIX_PATH}/bin/sphinx-build -b doctest ${CI_PROJECT_DIR}/doc ${CI_PROJECT_NAME}/sphinx
+fi 
+
+run_cmd cd ${CI_PROJECT_DIR}
diff --git a/ci/update_feedstock.py b/_ci/update_feedstock.py
similarity index 100%
rename from ci/update_feedstock.py
rename to _ci/update_feedstock.py
diff --git a/ci/wheels.sh b/_ci/wheels.sh
similarity index 100%
rename from ci/wheels.sh
rename to _ci/wheels.sh
diff --git a/buildout-bob.cfg b/buildout-bob.cfg
index 0a8f3c235b79129ac7ec7c272fc6faf54a4afd36..4a55160c5fb4882f691167cd671b321289c112c2 100644
--- a/buildout-bob.cfg
+++ b/buildout-bob.cfg
@@ -3,38 +3,94 @@
 ; Mon 16 Apr 08:29:18 2012 CEST
 
 [buildout]
-parts = scripts
 develop = src/bob.buildout
           src/bob.extension
           src/bob.blitz
           src/bob.core
-
-
+          src/bob.io.base
+          src/bob.sp
+          src/bob.ap
+          src/bob.math
+          src/bob.measure
+          src/bob.db.base
+          src/bob.io.image
+          src/bob.io.video
+          src/bob.io.matlab
+          src/bob.io.audio
+          src/bob.ip.base
+          src/bob.ip.color
+          src/bob.ip.draw
+          src/bob.ip.gabor
+          src/bob.learn.activation
+          src/bob.learn.libsvm
+          src/bob.learn.linear
+          src/bob.learn.mlp
+          src/bob.learn.em
+          src/bob.learn.boosting
+          src/bob.ip.facedetect
+          src/bob.ip.flandmark
+          src/bob.ip.optflow.hornschunck
+          src/bob.ip.optflow.liu          
 
 eggs = bob.extension
        bob.blitz
        bob.core
-
-
-
-extensions = bob.buildout
-             mr.developer
-auto-checkout = *
-
-
-; options for bob.buildout extension
-newest = false
-debug = false
-verbose = true
-
-[scripts]
-recipe = bob.buildout:scripts
-
+       bob.io.base
+       bob.sp
+       bob.ap
+       bob.math
+       bob.measure
+       bob.db.base
+       bob.io.image
+       bob.io.video
+       bob.io.matlab
+       bob.io.audio
+       bob.ip.base
+       bob.ip.color
+       bob.ip.draw
+       bob.ip.gabor
+       bob.learn.activation
+       bob.learn.libsvm
+       bob.learn.linear
+       bob.learn.mlp
+       bob.learn.em
+       bob.learn.boosting       
+       bob.ip.facedetect
+       bob.ip.flandmark
+       bob.ip.optflow.hornschunck
+       bob.ip.optflow.liu
 
 [sources]
 bob.buildout = git https://gitlab.idiap.ch/bob/bob.buildout
 bob.extension = git https://gitlab.idiap.ch/bob/bob.extension
 bob.blitz = git https://gitlab.idiap.ch/bob/bob.blitz
 bob.core = git https://gitlab.idiap.ch/bob/bob.core
+bob.io.base = git https://gitlab.idiap.ch/bob/bob.io.base
+bob.sp = git https://gitlab.idiap.ch/bob/bob.sp
+bob.ap = git https://gitlab.idiap.ch/bob/bob.ap
+bob.math = git https://gitlab.idiap.ch/bob/bob.math
+bob.measure = git https://gitlab.idiap.ch/bob/bob.measure
+bob.db.base = git https://gitlab.idiap.ch/bob/bob.db.base
+bob.io.image = git https://gitlab.idiap.ch/bob/bob.io.image        
+bob.io.video = git https://gitlab.idiap.ch/bob/bob.io.video
+bob.io.matlab = git https://gitlab.idiap.ch/bob/bob.io.matlab
+bob.io.audio = git https://gitlab.idiap.ch/bob/bob.io.audio
+bob.ip.base = git https://gitlab.idiap.ch/bob/bob.ip.base
+bob.ip.color = git https://gitlab.idiap.ch/bob/bob.ip.color
+bob.ip.draw = git https://gitlab.idiap.ch/bob/bob.ip.draw
+bob.ip.gabor = git https://gitlab.idiap.ch/bob/bob.ip.gabor
+bob.learn.activation = git https://gitlab.idiap.ch/bob/bob.learn.activation
+bob.learn.libsvm = git https://gitlab.idiap.ch/bob/bob.learn.libsvm
+bob.learn.linear = git https://gitlab.idiap.ch/bob/bob.learn.linear
+bob.learn.mlp = git https://gitlab.idiap.ch/bob/bob.learn.mlp
+bob.learn.em = git https://gitlab.idiap.ch/bob/bob.learn.em
+bob.learn.boosting = git https://gitlab.idiap.ch/bob/bob.learn.boosting
+bob.ip.facedetect = git https://gitlab.idiap.ch/bob/bob.ip.facedetect
+bob.ip.flandmark = git https://gitlab.idiap.ch/bob/bob.ip.flandmark
+;bob.ip.skincolorfilter = git https://gitlab.idiap.ch/bob/bob.ip.skincolorfilter
+bob.ip.facedetect = git https://gitlab.idiap.ch/bob/bob.ip.facedetect
+bob.ip.optflow.hornschunck = git https://gitlab.idiap.ch/bob/bob.ip.optflow.hornschunck
+bob.ip.optflow.liu = git https://gitlab.idiap.ch/bob/bob.ip.optflow.liu
+
 
 
diff --git a/buildout-satellites.cfg b/buildout-satellites.cfg
index 20c26fe2376124079bbb7f70081629658751c714..545e2892e54267babe583db49ed2452fac94e7f0 100644
--- a/buildout-satellites.cfg
+++ b/buildout-satellites.cfg
@@ -3,7 +3,7 @@
 ; Mon 16 Apr 08:29:18 2012 CEST
 
 [buildout]
-parts = scripts
+extends = buildout-bob.cfg
 develop =  src/bob.db.bio_filelist
            src/bob.db.banca
            src/bob.db.biosecure
@@ -39,6 +39,7 @@ develop =  src/bob.db.bio_filelist
            src/bob.db.putvein
            src/bob.db.ijba
            src/bob.db.cuhk_cufs
+           src/gridtk
 
 eggs = bob.db.bio_filelist
        bob.db.banca
@@ -74,22 +75,9 @@ eggs = bob.db.bio_filelist
        bob.db.putvein
        bob.db.ijba
        bob.db.cuhk_cufs
+       gridtk
 
 
-extensions = bob.buildout
-             mr.developer
-
-auto-checkout = *
-
-
-; options for bob.buildout extension
-newest = false
-debug = false
-verbose = true
-
-[scripts]
-recipe = bob.buildout:scripts
-
 [sources]
 bob.db.bio_filelist = git https://gitlab.idiap.ch/bob/bob.db.bio_filelist
 bob.db.banca = git https://gitlab.idiap.ch/bob/bob.db.banca
@@ -126,5 +114,6 @@ bob.db.kboc16 = git https://gitlab.idiap.ch/bob/bob.db.kboc16
 bob.db.putvein = git https://gitlab.idiap.ch/bob/bob.db.putvein
 bob.db.ijba = git https://gitlab.idiap.ch/bob/bob.db.ijba
 bob.db.cuhk_cufs = git https://gitlab.idiap.ch/bob/bob.db.cuhk_cufs
+gridtk = git https://gitlab.idiap.ch/bob/gridtk
 ;bob.db.cbsr_nir_vis_2 = git https://gitlab.idiap.ch/bob/bob.db.cbsr_nir_vis_2
 ;bob.example.cmake = git https://gitlab.idiap.ch/bob/bob.example.cmake
diff --git a/buildout.cfg b/buildout.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..d8e5ba3fb963cc0a55574d6e0340fbe8f1a66791
--- /dev/null
+++ b/buildout.cfg
@@ -0,0 +1,20 @@
+; vim: set fileencoding=utf-8 :
+; Andre Anjos <andre.bioidiap@idiap.ch>
+; Mon 16 Apr 08:29:18 2012 CEST
+
+[buildout]
+parts = scripts
+extends = buildout-satellites.cfg
+
+extensions = bob.buildout
+             mr.developer
+auto-checkout = *
+
+
+; options for bob.buildout extension
+newest = false
+debug = false
+verbose = true
+
+[scripts]
+recipe = bob.buildout:scripts
diff --git a/ci/build.sh b/ci/build.sh
deleted file mode 100755
index 450ac7beafd72bdb4f3b12411a41f3f6a937a131..0000000000000000000000000000000000000000
--- a/ci/build.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-# Wed 21 Sep 2016 13:08:05 CEST
-
-source $(dirname ${0})/functions.sh
-CONFIG_FILE=$1
-
-
-run_cmd ./bin/buildout -c ${CONFIG_FILE}
-
-if [ -x ./bin/bob_dbmanage.py ]; then
-  run_cmd ./bin/bob_dbmanage.py all download --force;
-fi
-
diff --git a/ci/test.sh b/ci/test.sh
deleted file mode 100755
index 7dbb7807ab5c71e56f0f2a6d942d1982ecaa21d9..0000000000000000000000000000000000000000
--- a/ci/test.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-# Wed 21 Sep 2016 13:08:05 CEST
-
-source $(dirname ${0})/functions.sh
-
-run_cmd cd ${PREFIX}
-
-# The tests:
-run_cmd ${PREFIX}/bin/python ${BOB_PREFIX_PATH}/bin/coverage run --source=${CI_PROJECT_NAME} ${BOB_PREFIX_PATH}/bin/nosetests -sv ${CI_PROJECT_NAME}
-
-run_cmd cd ${CI_PROJECT_DIR}
diff --git a/ci/wheels_dependencies.sh b/ci/wheels_dependencies.sh
deleted file mode 100755
index a2668c3c8fbb8646c61be171c59a316d1d9721ee..0000000000000000000000000000000000000000
--- a/ci/wheels_dependencies.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-./bin/python setup.py bdist_wheel --dist-dir ./dist  --python-tag ${1}
-
-REQUIREMENTS = ${2}
-
-#Iterate the dependency files to generate the wheels
-for f in REQUIREMENTS
-do
-  while read -r line
-  do
-      dir="src/"$line
-      cd $dir      
-      ../../bin/python setup.py bdist_wheel --dist-dir ../../dist --python-tag ${1}
-      cd ../../
-  done < "$f"
-done
-
diff --git a/layer0.cfg b/layer0.cfg
deleted file mode 100644
index 4eca2f4d536a0a4849afc29b8c44270380657494..0000000000000000000000000000000000000000
--- a/layer0.cfg
+++ /dev/null
@@ -1,37 +0,0 @@
-; vim: set fileencoding=utf-8 :
-; Andre Anjos <andre.bioidiap@idiap.ch>
-; Tue 27 May 11:11:04 2014 CEST
-
-[buildout]
-develop = src/bob.buildout
-          src/bob.extension
-          src/bob.blitz
-          src/bob.core
-          src/bob.io.base
-          src/bob.sp
-          src/bob.ap
-          src/bob.math
-          src/bob.measure
-          src/bob.db.base
-eggs = bob.extension
-       bob.blitz
-       bob.core
-       bob.io.base
-       bob.sp
-       bob.ap
-       bob.math
-       bob.measure
-       bob.db.base
-
-
-[sources]
-bob.buildout = git https://gitlab.idiap.ch/bob/bob.buildout
-bob.extension = git https://gitlab.idiap.ch/bob/bob.extension
-bob.blitz = git https://gitlab.idiap.ch/bob/bob.blitz
-bob.core = git https://gitlab.idiap.ch/bob/bob.core
-bob.io.base = git https://gitlab.idiap.ch/bob/bob.io.base
-bob.sp = git https://gitlab.idiap.ch/bob/bob.sp
-bob.ap = git https://gitlab.idiap.ch/bob/bob.ap
-bob.math = git https://gitlab.idiap.ch/bob/bob.math
-bob.measure = git https://gitlab.idiap.ch/bob/bob.measure
-bob.db.base = git https://gitlab.idiap.ch/bob/bob.db.base
diff --git a/layer1.cfg b/layer1.cfg
deleted file mode 100644
index 901bdb7d02d5b74d7a228bcec35bb4c234bcacd6..0000000000000000000000000000000000000000
--- a/layer1.cfg
+++ /dev/null
@@ -1,51 +0,0 @@
-; vim: set fileencoding=utf-8 :
-; Andre Anjos <andre.bioidiap@idiap.ch>
-; Tue 27 May 11:11:04 2014 CEST
-
-[buildout]
-extends = layer0.cfg
-develop += src/bob.io.image
-           src/bob.io.video
-           src/bob.io.matlab
-           src/bob.io.audio
-           src/bob.ip.base
-           src/bob.ip.color
-           src/bob.ip.draw
-           src/bob.ip.gabor
-           src/bob.learn.activation
-           src/bob.learn.libsvm
-           src/bob.learn.linear
-           src/bob.learn.mlp
-           src/bob.learn.em
-           src/bob.learn.boosting
-
-eggs += bob.io.image
-        bob.io.video
-        bob.io.matlab
-        bob.io.audio
-        bob.ip.base
-        bob.ip.color
-        bob.ip.draw
-        bob.ip.gabor
-        bob.learn.activation
-        bob.learn.libsvm
-        bob.learn.linear
-        bob.learn.mlp
-        bob.learn.em
-        bob.learn.boosting
-        
-[sources]
-bob.io.image = git https://gitlab.idiap.ch/bob/bob.io.image        
-bob.io.video = git https://gitlab.idiap.ch/bob/bob.io.video
-bob.io.matlab = git https://gitlab.idiap.ch/bob/bob.io.matlab
-bob.io.audio = git https://gitlab.idiap.ch/bob/bob.io.audio
-bob.ip.base = git https://gitlab.idiap.ch/bob/bob.ip.base
-bob.ip.color = git https://gitlab.idiap.ch/bob/bob.ip.color
-bob.ip.draw = git https://gitlab.idiap.ch/bob/bob.ip.draw
-bob.ip.gabor = git https://gitlab.idiap.ch/bob/bob.ip.gabor
-bob.learn.activation = git https://gitlab.idiap.ch/bob/bob.learn.activation
-bob.learn.libsvm = git https://gitlab.idiap.ch/bob/bob.learn.libsvm
-bob.learn.linear = git https://gitlab.idiap.ch/bob/bob.learn.linear
-bob.learn.mlp = git https://gitlab.idiap.ch/bob/bob.learn.mlp
-bob.learn.em = git https://gitlab.idiap.ch/bob/bob.learn.em
-bob.learn.boosting = git https://gitlab.idiap.ch/bob/bob.learn.boosting
diff --git a/layer2.cfg b/layer2.cfg
deleted file mode 100644
index 9676a03327b76c5dd9c35d19b3bccef2d8ef82d3..0000000000000000000000000000000000000000
--- a/layer2.cfg
+++ /dev/null
@@ -1,147 +0,0 @@
-; vim: set fileencoding=utf-8 :
-; Andre Anjos <andre.bioidiap@idiap.ch>
-; Tue 27 May 11:11:04 2014 CEST
-
-[buildout]
-extends = layer1.cfg
-develop += src/bob.ip.facedetect
-           src/bob.ip.flandmark
-           src/bob.ip.skincolorfilter
-           src/bob.ip.optflow.hornschunck
-           src/bob.ip.optflow.liu
-           src/bob.db.bio_filelist
-           src/bob.db.iris
-           src/bob.db.mnist
-           src/bob.db.wine
-           src/bob.db.atnt
-           src/bob.db.arface
-           src/bob.db.banca
-           src/bob.db.biosecure
-           src/bob.db.caspeal
-           src/bob.db.frgc
-           src/bob.db.gbu
-           src/bob.db.lfw
-           src/bob.db.mobio
-           src/bob.db.multipie
-           src/bob.db.scface
-           src/bob.db.xm2vts
-           src/bob.db.youtube
-           src/bob.db.voxforge
-           src/bob.db.utfvp
-           src/bob.db.livdet2013
-           src/bob.db.atvskeystroke
-           src/bob.db.biosecurid.face
-           src/bob.db.casme2
-           src/bob.db.replay
-           src/bob.db.biowave_test
-           src/bob.db.casia_fasd
-           src/bob.db.verafinger
-           src/bob.bio.db
-           src/bob.bio.base
-           src/bob.bio.gmm
-           src/bob.bio.spear
-           src/bob.bio.face
-           src/bob.bio.video
-           src/bob.db.msu_mfsd_mod
-           src/bob.db.avspoof
-           src/bob.db.asvspoof
-           src/bob.db.kboc16
-           src/bob.db.putvein
-           src/bob.db.ijba
-           src/bob.db.cuhk_cufs
-
-eggs += bob.ip.facedetect
-        bob.ip.flandmark
-        bob.ip.skincolorfilter
-        bob.ip.optflow.hornschunck
-        bob.ip.optflow.liu
-        bob.db.bio_filelist
-        bob.db.iris
-        bob.db.mnist
-        bob.db.wine
-        bob.db.atnt
-        bob.db.arface
-        bob.db.banca
-        bob.db.biosecure
-        bob.db.caspeal
-        bob.db.frgc
-        bob.db.gbu
-        bob.db.lfw
-        bob.db.mobio
-        bob.db.multipie
-        bob.db.scface
-        bob.db.xm2vts
-        bob.db.youtube
-        bob.db.voxforge
-        bob.db.utfvp
-        bob.db.livdet2013
-        bob.db.atvskeystroke
-        bob.db.biosecurid.face
-        bob.db.casme2
-        bob.db.replay
-        bob.db.casia_fasd
-        bob.db.verafinger
-        bob.db.biowave_test
-        bob.bio.base
-        bob.bio.gmm
-        bob.bio.spear
-        bob.bio.face
-        bob.bio.video
-        bob.db.msu_mfsd_mod
-        bob.db.avspoof
-        bob.db.asvspoof
-        bob.db.kboc16
-        bob.db.putvein
-        bob.db.ijba
-        bob.db.cuhk_cufs
-        
-[sources]
-bob.ip.facedetect = git https://gitlab.idiap.ch/bob/bob.ip.facedetect
-bob.ip.flandmark = git https://gitlab.idiap.ch/bob/bob.ip.flandmark
-;bob.ip.skincolorfilter = git https://gitlab.idiap.ch/bob/bob.ip.skincolorfilter
-bob.ip.facedetect = git https://gitlab.idiap.ch/bob/bob.ip.facedetect
-bob.ip.optflow.hornschunck = git https://gitlab.idiap.ch/bob/bob.ip.optflow.hornschunck
-bob.ip.optflow.liu = git https://gitlab.idiap.ch/bob/bob.ip.optflow.liu
-bob.db.bio_filelist = git https://gitlab.idiap.ch/bob/bob.db.bio_filelist
-bob.db.iris = git https://gitlab.idiap.ch/bob/bob.db.iris
-bob.db.mnist = git https://gitlab.idiap.ch/bob/bob.db.mnist
-bob.db.wine = git https://gitlab.idiap.ch/bob/bob.db.wine
-bob.db.atnt = git https://gitlab.idiap.ch/bob/bob.db.atnt
-bob.db.arface = git https://gitlab.idiap.ch/bob/bob.db.arface
-bob.db.banca = git https://gitlab.idiap.ch/bob/bob.db.banca
-bob.db.biosecure = git https://gitlab.idiap.ch/bob/bob.db.biosecure
-bob.db.caspeal = git https://gitlab.idiap.ch/bob/bob.db.caspeal
-bob.db.frgc = git https://gitlab.idiap.ch/bob/bob.db.frgc
-bob.db.gbu = git https://gitlab.idiap.ch/bob/bob.db.gbu
-bob.db.lfw = git https://gitlab.idiap.ch/bob/bob.db.lfw
-bob.db.mobio = git https://gitlab.idiap.ch/bob/bob.db.mobio
-bob.db.multipie = git https://gitlab.idiap.ch/bob/bob.db.multipie
-bob.db.scface = git https://gitlab.idiap.ch/bob/bob.db.scface
-bob.db.xm2vts = git https://gitlab.idiap.ch/bob/bob.db.xm2vts
-bob.db.youtube = git https://gitlab.idiap.ch/bob/bob.db.youtube
-;bob.db.nist_sre12 = git https://gitlab.idiap.ch/bob/bob.db.nist_sre12
-bob.db.voxforge = git https://gitlab.idiap.ch/bob/bob.db.voxforge
-bob.db.utfvp = git https://gitlab.idiap.ch/bob/bob.db.utfvp
-bob.db.livdet2013 = git https://gitlab.idiap.ch/bob/bob.db.livdet2013
-bob.db.atvskeystroke = git https://gitlab.idiap.ch/bob/bob.db.atvskeystroke
-bob.db.biosecurid.face = git https://gitlab.idiap.ch/bob/bob.db.biosecurid.face
-bob.db.casme2 = git https://gitlab.idiap.ch/bob/bob.db.casme2
-bob.db.replay = git https://gitlab.idiap.ch/bob/bob.db.replay
-bob.db.biowave_test = git https://gitlab.idiap.ch/bob/bob.db.biowave_test
-;bob.db.casia_fasd = git https://gitlab.idiap.ch/bob/bob.db.casia_fasd
-bob.db.verafinger = git git@gitlab.idiap.ch:bob/bob.db.verafinger
-bob.bio.base = git https://gitlab.idiap.ch/bob/bob.bio.base
-bob.bio.gmm = git https://gitlab.idiap.ch/bob/bob.bio.gmm
-bob.bio.spear = git https://gitlab.idiap.ch/bob/bob.bio.spear
-bob.bio.face = git https://gitlab.idiap.ch/bob/bob.bio.face
-bob.bio.video = git https://gitlab.idiap.ch/bob/bob.bio.video
-bob.db.msu_mfsd_mod = git https://gitlab.idiap.ch/bob/bob.db.msu_mfsd_mod
-bob.db.avspoof = git https://gitlab.idiap.ch/bob/bob.db.avspoof
-bob.db.asvspoof = git https://gitlab.idiap.ch/bob/bob.db.asvspoof
-bob.db.kboc16 = git https://gitlab.idiap.ch/bob/bob.db.kboc16
-bob.db.putvein = git https://gitlab.idiap.ch/bob/bob.db.putvein
-bob.db.ijba = git https://gitlab.idiap.ch/bob/bob.db.ijba
-bob.db.cuhk_cufs = git https://gitlab.idiap.ch/bob/bob.db.cuhk_cufs
-;bob.db.cbsr_nir_vis_2 = git https://gitlab.idiap.ch/bob/bob.db.cbsr_nir_vis_2
-;bob.example.cmake = git https://gitlab.idiap.ch/bob/bob.example.cmake
-
diff --git a/setup.py b/setup.py
index e5c1cec962e2a0916d638f9543d87cec07b1df90..c1f76ee38e50b0bd2270a12bc8271a7862557597 100644
--- a/setup.py
+++ b/setup.py
@@ -21,8 +21,8 @@
 
 from setuptools import setup, find_packages
 
-requeriments = [l.rstrip("\n") for l in open("requirements.txt", 'r').readlines()]
-requeriments = requeriments + [l.rstrip("\n") for l in open("test-requirements.txt", 'r').readlines()]
+requeriments = [l.rstrip("\n") for l in open("requirements-bob.txt", 'r').readlines()]
+requeriments = requeriments + [l.rstrip("\n") for l in open("requirements-satellites.txt", 'r').readlines()]
 
 # The only thing we do in this file is to call the setup() function with all
 # parameters that define our package.
diff --git a/test-requirements.txt b/test-requirements.txt
deleted file mode 100644
index 098f638185d52385e20c701f0876abc616949fe7..0000000000000000000000000000000000000000
--- a/test-requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-gridtk