diff --git a/lib/objectFactory.js b/lib/objectFactory.js
index <HASH>..<HASH> 100644
--- a/lib/objectFactory.js
+++ b/lib/objectFactory.js
@@ -14,27 +14,39 @@ var create = function (params) {
     */
     
     var extendThese = params.extends,
-        implementsInterfaces = params.implements || [];
+        implementsInterfaces = params.implements || [],
+        constructor = params.constructor;
         
     if (params.extends) {
         delete params.extends;
-    }
+    };
     
     if (params.implements) {
         delete params.implements
-    }
+    };
+    
+    if (params.constructor) {
+        // Rename the constructor param so it can be added with the
+        // other params
+        params._constructor = params.constructor;
+        delete params.constructor;
+    };
     
     var outp = function (data) {
+        // Run the constructor
+        this._constructor && this._constructor(data);
+        
+        // Then add passed params/data
         for (var key in data) {
             this[key] = data[key];
         };
-    };
-    
+    };        
+        
     outp.prototype._implements = []
     
     // If extends other do first so they get overridden by those passed as params
     // Inehrited prototypes with lower index have precedence
-    common.extendPrototypeWithThese(outp, extendThese)
+    common.extendPrototypeWithThese(outp, extendThese);
         
     // The rest of the params are added as methods, overriding previous
     common.addMembers(outp, params);
Allow passing and inheriting a constructor method, stored as _constructor