diff --git a/web/gui/src/main/webapp/app/view/topo/topoForce.js b/web/gui/src/main/webapp/app/view/topo/topoForce.js
index 10e924f..7dadaeb 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoForce.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoForce.js
@@ -23,7 +23,8 @@
     'use strict';
 
     // injected refs
-    var $log, fs, sus, is, ts, flash, tis, tms, tss, tts, icfg, uplink;
+    var $log, fs, sus, is, ts, flash, tis, tms, tss, tts, fltr,
+        icfg, uplink;
 
     // configuration
     var labelConfig = {
@@ -1078,14 +1079,21 @@
         }
     }
 
+    function mkFilterApi(uplink) {
+        return {
+            node: function () { return node; },
+            link: function () { return link; }
+        };
+    }
+
     angular.module('ovTopo')
     .factory('TopoForceService',
         ['$log', 'FnService', 'SvgUtilService', 'IconService', 'ThemeService',
             'FlashService', 'TopoInstService', 'TopoModelService',
-            'TopoSelectService', 'TopoTrafficService',
+            'TopoSelectService', 'TopoTrafficService', 'TopoFilterService',
 
         function (_$log_, _fs_, _sus_, _is_, _ts_, _flash_,
-                  _tis_, _tms_, _tss_, _tts_) {
+                  _tis_, _tms_, _tss_, _tts_, _fltr_) {
             $log = _$log_;
             fs = _fs_;
             sus = _sus_;
@@ -1096,6 +1104,7 @@
             tms = _tms_;
             tss = _tss_;
             tts = _tts_;
+            fltr = _fltr_;
 
             icfg = is.iconConfig();
 
@@ -1117,6 +1126,7 @@
                 tms.initModel(mkModelApi(uplink), dim);
                 tss.initSelect(mkSelectApi(uplink));
                 tts.initTraffic(mkTrafficApi(uplink));
+                fltr.initFilter(mkFilterApi(uplink), d3.select('#mast-right'));
 
                 settings = angular.extend({}, defaultSettings, opts);
 
@@ -1151,6 +1161,7 @@
             }
 
             function destroyForce() {
+                fltr.destroyFilter();
                 tts.destroyTraffic();
                 tss.destroySelect();
                 tms.destroyModel();
