diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Model.js b/web/gui/src/main/webapp/app/view/topo2/topo2Model.js
index b1b2a12..f76456e 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Model.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Model.js
@@ -22,6 +22,8 @@
 (function () {
     'use strict';
 
+    var extend;
+
     function Model(attributes) {
 
         var attrs = attributes || {};
@@ -118,34 +120,13 @@
         }
     };
 
-    Model.extend = function (protoProps, staticProps) {
-
-        var parent = this;
-        var child;
-
-        child = function () {
-            return parent.apply(this, arguments);
-        };
-
-        angular.extend(child, parent, staticProps);
-
-        // Set the prototype chain to inherit from `parent`, without calling
-        // `parent`'s constructor function and add the prototype properties.
-        child.prototype = angular.extend({}, parent.prototype, protoProps);
-        child.prototype.constructor = child;
-
-        // Set a convenience property in case the parent's prototype is needed
-        // later.
-        child.__super__ = parent.prototype;
-
-        return child;
-    };
-
     angular.module('ovTopo2')
     .factory('Topo2Model', [
-        function () {
+        'FnService',
+        function (fn) {
+            Model.extend = fn.extend;
+            
             return Model;
         }
     ]);
-
 })();
