diff --git a/xbob/learn/activation/include/xbob.learn.activation/api.h b/xbob/learn/activation/include/xbob.learn.activation/api.h
index 34383078ed135819abae27ba3d73223eff282bd7..3e9703ee8deab2dbc3e1fb1791e4b2598f0a80e6 100644
--- a/xbob/learn/activation/include/xbob.learn.activation/api.h
+++ b/xbob/learn/activation/include/xbob.learn.activation/api.h
@@ -20,11 +20,31 @@
  * C API functions *
  *******************/
 
+/* Enum defining entries in the function table */
+enum _PyBobLearnActivation_ENUM{
+  PyXbobLearnActivation_APIVersion_NUM = 0,
+  // Bindings for xbob.learn.activation.Activation
+  PyBobLearnActivation_Type_NUM,
+  PyBobLearnActivation_Check_NUM,
+  PyBobLearnActivation_NewFromActivation_NUM,
+  // Bindings for xbob.learn.activation.Identity
+  PyBobLearnIdentityActivation_Type_NUM,
+  // Bindings for xbob.learn.activation.Linear
+  PyBobLearnLinearActivation_Type_NUM,
+  // Bindings for xbob.learn.activation.Logistic
+  PyBobLearnLogisticActivation_Type_NUM,
+  // Bindings for xbob.learn.activation.HyperbolicTangent
+  PyBobLearnHyperbolicTangentActivation_Type_NUM,
+  // Bindings for xbob.learn.activation.MultipliedHyperbolicTangent
+  PyBobLearnMultipliedHyperbolicTangentActivation_Type_NUM,
+  // Total number of C API pointers
+  PyXbobLearnActivation_API_pointers
+};
+
 /**************
  * Versioning *
  **************/
 
-#define PyXbobLearnActivation_APIVersion_NUM 0
 #define PyXbobLearnActivation_APIVersion_TYPE int
 
 /*************************************************
@@ -36,14 +56,11 @@ typedef struct {
   boost::shared_ptr<bob::machine::Activation> cxx;
 } PyBobLearnActivationObject;
 
-#define PyBobLearnActivation_Type_NUM 1
 #define PyBobLearnActivation_Type_TYPE PyTypeObject
 
-#define PyBobLearnActivation_Check_NUM 2
 #define PyBobLearnActivation_Check_RET int
 #define PyBobLearnActivation_Check_PROTO (PyObject* o)
 
-#define PyBobLearnActivation_NewFromActivation_NUM 3
 #define PyBobLearnActivation_NewFromActivation_RET PyObject*
 #define PyBobLearnActivation_NewFromActivation_PROTO (boost::shared_ptr<bob::machine::Activation> a)
 
@@ -56,7 +73,6 @@ typedef struct {
   boost::shared_ptr<bob::machine::IdentityActivation> cxx;
 } PyBobLearnIdentityActivationObject;
 
-#define PyBobLearnIdentityActivation_Type_NUM 4
 #define PyBobLearnIdentityActivation_Type_TYPE PyTypeObject
 
 /*********************************************
@@ -68,7 +84,6 @@ typedef struct {
   boost::shared_ptr<bob::machine::LinearActivation> cxx;
 } PyBobLearnLinearActivationObject;
 
-#define PyBobLearnLinearActivation_Type_NUM 5
 #define PyBobLearnLinearActivation_Type_TYPE PyTypeObject
 
 /***********************************************
@@ -80,7 +95,6 @@ typedef struct {
   boost::shared_ptr<bob::machine::LogisticActivation> cxx;
 } PyBobLearnLogisticActivationObject;
 
-#define PyBobLearnLogisticActivation_Type_NUM 6
 #define PyBobLearnLogisticActivation_Type_TYPE PyTypeObject
 
 /********************************************************
@@ -92,7 +106,6 @@ typedef struct {
   boost::shared_ptr<bob::machine::HyperbolicTangentActivation> cxx;
 } PyBobLearnHyperbolicTangentActivationObject;
 
-#define PyBobLearnHyperbolicTangentActivation_Type_NUM 7
 #define PyBobLearnHyperbolicTangentActivation_Type_TYPE PyTypeObject
 
 /******************************************************************
@@ -104,11 +117,8 @@ typedef struct {
   boost::shared_ptr<bob::machine::MultipliedHyperbolicTangentActivation> cxx;
 } PyBobLearnMultipliedHyperbolicTangentActivationObject;
 
-#define PyBobLearnMultipliedHyperbolicTangentActivation_Type_NUM 8
 #define PyBobLearnMultipliedHyperbolicTangentActivation_Type_TYPE PyTypeObject
 
-/* Total number of C API pointers */
-#define PyXbobLearnActivation_API_pointers 9
 
 #ifdef XBOB_LEARN_ACTIVATION_MODULE