diff --git a/bob/learn/activation/include/bob.learn.activation/config.h b/bob/learn/activation/include/bob.learn.activation/config.h
index 30f27625a8d750165abb65e1d6647f2d0e3cc558..a6958f5680d72b05c7b2dced8ee67690f8634b17 100644
--- a/bob/learn/activation/include/bob.learn.activation/config.h
+++ b/bob/learn/activation/include/bob.learn.activation/config.h
@@ -11,4 +11,23 @@
 /* Macros that define versions and important names */
 #define BOB_LEARN_ACTIVATION_API_VERSION 0x0200
 
+#ifdef BOB_IMPORT_VERSION
+
+  /***************************************
+  * Here we define some functions that should be used to build version dictionaries in the version.cpp file
+  * There will be a compiler warning, when these functions are not used, so use them!
+  ***************************************/
+
+  #include <Python.h>
+  #include <boost/preprocessor/stringize.hpp>
+
+  /**
+   * bob.learn.activation c/c++ api version
+   */
+  static PyObject* bob_learn_activation_version() {
+    return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_LEARN_ACTIVATION_API_VERSION));
+  }
+
+#endif // BOB_IMPORT_VERSION
+
 #endif /* BOB_LEARN_ACTIVATION_CONFIG_H */
diff --git a/bob/learn/activation/main.cpp b/bob/learn/activation/main.cpp
index 3e1325055ded02425d6bad4e6514357e03deca98..d88a5af838992ec48ac54aaed874ed81e85b1785 100644
--- a/bob/learn/activation/main.cpp
+++ b/bob/learn/activation/main.cpp
@@ -13,6 +13,7 @@
 #endif
 #include <bob.blitz/capi.h>
 #include <bob.blitz/cleanup.h>
+#include <bob.core/api.h>
 #include <bob.io.base/api.h>
 
 static PyMethodDef module_methods[] = {
@@ -150,17 +151,9 @@ static PyObject* create_module (void) {
   if (c_api_object) PyModule_AddObject(m, "_C_API", c_api_object);
 
   /* imports dependencies */
-  if (import_bob_blitz() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
-    return 0;
-  }
-
-  if (import_bob_io_base() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
-    return 0;
-  }
+  if (import_bob_blitz() < 0) return 0;
+  if (import_bob_core_logging() < 0) return 0;
+  if (import_bob_io_base() < 0) return 0;
 
   return Py_BuildValue("O",m);
 }
diff --git a/bob/learn/activation/version.cpp b/bob/learn/activation/version.cpp
index 5f77574e862fee00bb8bec3684ce588d1770496f..91998d8110091113db3ba3c16fa8a971a602475e 100644
--- a/bob/learn/activation/version.cpp
+++ b/bob/learn/activation/version.cpp
@@ -5,109 +5,15 @@
  * @brief Binds configuration information available from bob
  */
 
-#ifdef NO_IMPORT_ARRAY
-#undef NO_IMPORT_ARRAY
-#endif
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
 
-#include <string>
-#include <cstdlib>
-#include <blitz/blitz.h>
-#include <boost/preprocessor/stringize.hpp>
-#include <boost/version.hpp>
-#include <boost/format.hpp>
+#include <bob.learn.activation/config.h>
 
+#define BOB_IMPORT_VERSION
+#include <bob.blitz/config.h>
+#include <bob.blitz/cleanup.h>
 #include <bob.core/config.h>
 #include <bob.io.base/config.h>
-#include <bob.learn.activation/config.h>
-
-static int dict_set(PyObject* d, const char* key, const char* value) {
-  PyObject* v = Py_BuildValue("s", value);
-  if (!v) return 0;
-  int retval = PyDict_SetItemString(d, key, v);
-  Py_DECREF(v);
-  if (retval == 0) return 1; //all good
-  return 0; //a problem occurred
-}
-
-static int dict_steal(PyObject* d, const char* key, PyObject* value) {
-  if (!value) return 0;
-  int retval = PyDict_SetItemString(d, key, value);
-  Py_DECREF(value);
-  if (retval == 0) return 1; //all good
-  return 0; //a problem occurred
-}
-
-/**
- * Describes the version of Boost libraries installed
- */
-static PyObject* boost_version() {
-  boost::format f("%d.%d.%d");
-  f % (BOOST_VERSION / 100000);
-  f % (BOOST_VERSION / 100 % 1000);
-  f % (BOOST_VERSION % 100);
-  return Py_BuildValue("s", f.str().c_str());
-}
 
-/**
- * Describes the compiler version
- */
-static PyObject* compiler_version() {
-# if defined(__GNUC__) && !defined(__llvm__)
-  boost::format f("%s.%s.%s");
-  f % BOOST_PP_STRINGIZE(__GNUC__);
-  f % BOOST_PP_STRINGIZE(__GNUC_MINOR__);
-  f % BOOST_PP_STRINGIZE(__GNUC_PATCHLEVEL__);
-  return Py_BuildValue("ss", "gcc", f.str().c_str());
-# elif defined(__llvm__) && !defined(__clang__)
-  return Py_BuildValue("ss", "llvm-gcc", __VERSION__);
-# elif defined(__clang__)
-  return Py_BuildValue("ss", "clang", __clang_version__);
-# else
-  return Py_BuildValue("s", "unsupported");
-# endif
-}
-
-/**
- * Python version with which we compiled the extensions
- */
-static PyObject* python_version() {
-  boost::format f("%s.%s.%s");
-  f % BOOST_PP_STRINGIZE(PY_MAJOR_VERSION);
-  f % BOOST_PP_STRINGIZE(PY_MINOR_VERSION);
-  f % BOOST_PP_STRINGIZE(PY_MICRO_VERSION);
-  return Py_BuildValue("s", f.str().c_str());
-}
-
-/**
- * Numpy version
- */
-static PyObject* numpy_version() {
-  return Py_BuildValue("{ssss}", "abi", BOOST_PP_STRINGIZE(NPY_VERSION),
-      "api", BOOST_PP_STRINGIZE(NPY_API_VERSION));
-}
-
-/**
- * bob.blitz c/c++ api version
- */
-static PyObject* bob_blitz_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_BLITZ_API_VERSION));
-}
-
-/**
- * bob.core c/c++ api version
- */
-static PyObject* bob_core_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_CORE_API_VERSION));
-}
-
-/**
- * bob.io.base c/c++ api version
- */
-static PyObject* bob_io_base_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_IO_BASE_API_VERSION));
-}
 
 static PyObject* build_version_dictionary() {
 
@@ -115,17 +21,17 @@ static PyObject* build_version_dictionary() {
   if (!retval) return 0;
   auto retval_ = make_safe(retval);
 
-  if (!dict_set(retval, "Blitz++", BZ_VERSION)) return 0;
+  if (!dict_steal(retval, "Blitz++", blitz_version())) return 0;
   if (!dict_steal(retval, "Boost", boost_version())) return 0;
   if (!dict_steal(retval, "Compiler", compiler_version())) return 0;
   if (!dict_steal(retval, "Python", python_version())) return 0;
   if (!dict_steal(retval, "NumPy", numpy_version())) return 0;
+  if (!dict_steal(retval, "HDF5", hdf5_version())) return 0;
   if (!dict_steal(retval, "bob.blitz", bob_blitz_version())) return 0;
   if (!dict_steal(retval, "bob.core", bob_core_version())) return 0;
   if (!dict_steal(retval, "bob.io.base", bob_io_base_version())) return 0;
 
-  Py_INCREF(retval);
-  return retval;
+  return Py_BuildValue("O", retval);
 }
 
 static PyMethodDef module_methods[] = {
@@ -165,13 +71,6 @@ static PyObject* create_module (void) {
   if (!externals) return 0;
   if (PyModule_AddObject(m, "externals", externals) < 0) return 0;
 
-  /* imports dependencies */
-  if (import_bob_blitz() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
-    return 0;
-  }
-
   return Py_BuildValue("O", m);
 }
 
diff --git a/version.txt b/version.txt
index 0ac9c2deea58aac769c1c554458c3c8bc8e982ff..bdb0aa54bb23662ae20160d134a63340c659cb91 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-2.0.3b0
\ No newline at end of file
+2.0.3b1