diff --git a/src/dynamic_graph/entity.py b/src/dynamic_graph/entity.py
index 42edb39df789d9983f0241b85df7944bab1452ca..f3e7e12871dc53011c571c201cc7c5d92b9aac58 100644
--- a/src/dynamic_graph/entity.py
+++ b/src/dynamic_graph/entity.py
@@ -5,6 +5,32 @@
 """
 import wrap, signal_base
 
+entityList = []
+
+def initEntity(self, name):
+    """
+    Common constructor of Entity classes
+    """
+    Entity.__init__(self, self.class_name, name)
+
+def updateEntityClasses():
+    entityTypeList = wrap.factory_get_entity_class_list()
+    for e in entityTypeList:
+        class metacls(type):
+            def __new__(mcs, name, bases, dict):
+                return type.__new__(mcs, name, bases, dict)
+
+        # Create new class
+        a = metacls(e, (Entity,), {})
+        # Store class name in class member
+        a.class_name = e
+        print ("new class %s"%e)
+        # set class constructor
+        setattr(a, '__init__', initEntity)
+        # Store new class in dictionary with class name
+        globals()[e] = a
+
+
 class Entity (object) :
     """
     This class binds dynamicgraph::Entity C++ class