diff --git a/lib/component.js b/lib/component.js
index <HASH>..<HASH> 100644
--- a/lib/component.js
+++ b/lib/component.js
@@ -58,7 +58,7 @@
    */
   Backbone.React.Component.extend = function () {
     var Clazz = arguments[0];
-    var ReactComponent = React.createClass(_.extend({}, Backbone.React.Component.prototype, Clazz));
+    var ReactComponent;
     var ComponentFactory = function () {
       var component = new ReactComponent(arguments[0], arguments[1]);
       Backbone.React.Component.apply(component, arguments);
@@ -67,6 +67,8 @@
     ComponentFactory.extend = function () {
       return Backbone.React.Component.extend(_.extend({}, Clazz, arguments[0]));
     };
+    _.extend(ComponentFactory.prototype, Backbone.React.Component.prototype, Clazz);
+    ReactComponent = React.createClass(ComponentFactory.prototype);
     return ComponentFactory;
   };
   _.extend(Backbone.React.Component.prototype, Backbone.Events,
@@ -98,6 +100,13 @@
       this.stopListening();
     },
     /**
+     * Crawls to the owner of the component and gets the model.
+     * @returns {Backbone.Model}
+     */
+    getModel: function () {
+      return this.getOwner().model;
+    },
+    /**
      * Crawls this.props.__owner__ recursively until it finds the owner of this
      component. In case of being a parent component (no owners) it returns itself.
      * @returns {Backbone.React.Component}
getModel method that crawls to the owner and gets the model