diff --git a/src/app/service-graph/components/fine-grained/fine-grained.component.ts b/src/app/service-graph/components/fine-grained/fine-grained.component.ts
index e41adf8..0fbf411 100644
--- a/src/app/service-graph/components/fine-grained/fine-grained.component.ts
+++ b/src/app/service-graph/components/fine-grained/fine-grained.component.ts
@@ -132,7 +132,7 @@
   }
 
   private setupForceLayout() {
-
+    this.$log.debug(`[XosFineGrainedTenancyGraphCtrl] Setup Force Layout`);
     const tick = () => {
       this.nodeGroup.selectAll('g.node')
         .attr({
@@ -147,10 +147,17 @@
           y2: l => l.target.y || 0,
         });
     };
+    const getLinkStrenght = (l: IXosServiceGraphLink) => {
+      if (l.id.indexOf('service') > -1) {
+        return 0.1;
+      }
+      return 1;
+    };
     const svgDim = this.getSvgDimensions();
     this.forceLayout = d3.layout.force()
       .size([svgDim.width, svgDim.heigth])
       .linkDistance(config.force.linkDistance)
+      .linkStrength(l => getLinkStrenght(l))
       .charge(config.force.charge)
       .gravity(config.force.gravity)
       .on('tick', tick);
@@ -206,11 +213,6 @@
         transform: `rotate(45)`
       });
 
-    nodes.append('circle')
-      .attr({
-        r: '4px'
-      });
-
     nodes.append('text')
       .attr({
         'text-anchor': 'middle',
@@ -333,6 +335,7 @@
     this.renderTenantNodes(entering.filter('.tenant'));
     this.renderNetworkNodes(entering.filter('.network'));
     this.renderSubscriberNodes(entering.filter('.subscriber'));
+    this.renderSubscriberNodes(entering.filter('.tenantroot'));
   }
 
   private renderLinks(links: IXosServiceGraphLink[]) {
