diff --git a/src/app/service-graph/components/fine-grained/fine-grained.component.scss b/src/app/service-graph/components/fine-grained/fine-grained.component.scss
index 0a4ca39..c7fcfbc 100644
--- a/src/app/service-graph/components/fine-grained/fine-grained.component.scss
+++ b/src/app/service-graph/components/fine-grained/fine-grained.component.scss
@@ -45,7 +45,8 @@
         stroke: green;
       }
 
-      &.subscriber > rect{
+      &.subscriber > rect,
+      &.tenantroot > rect{
         stroke: red;
       }
     }
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[]) {
diff --git a/src/app/service-graph/graph.config.ts b/src/app/service-graph/graph.config.ts
index e94e510..4626c6d 100644
--- a/src/app/service-graph/graph.config.ts
+++ b/src/app/service-graph/graph.config.ts
@@ -23,7 +23,7 @@
 
 export const XosServiceGraphConfig: IXosServiceGraphConfig = {
   force: {
-    linkDistance: 160,
+    linkDistance: 80,
     charge: -60,
     gravity: 0.01
   },
diff --git a/src/app/service-graph/interfaces.ts b/src/app/service-graph/interfaces.ts
index b484534..0c53886 100644
--- a/src/app/service-graph/interfaces.ts
+++ b/src/app/service-graph/interfaces.ts
@@ -69,7 +69,7 @@
 }
 
 export interface IXosServiceGraphLink extends Id3Element {
-  id: number | string;
+  id: string;
   source: number;
   target: number;
   model: IXosTenantModel;
diff --git a/src/app/service-graph/services/graph.store.spec.ts b/src/app/service-graph/services/graph.store.spec.ts
index 27c6ccd..6d50a5a 100644
--- a/src/app/service-graph/services/graph.store.spec.ts
+++ b/src/app/service-graph/services/graph.store.spec.ts
@@ -13,6 +13,7 @@
   service: new Subject<any>(),
   tenant: new Subject<any>(),
   subscriber: new Subject<any>(),
+  tenantroot: new Subject<any>(),
   network: new Subject<any>(),
   servicedependency: new Subject<any>()
 };
diff --git a/src/app/service-graph/services/graph.store.ts b/src/app/service-graph/services/graph.store.ts
index 08ec52b..7908440 100644
--- a/src/app/service-graph/services/graph.store.ts
+++ b/src/app/service-graph/services/graph.store.ts
@@ -98,7 +98,7 @@
         }
       );
 
-    this.SubscriberSubscription = this.XosModelStore.query('Subscriber', '/core/subscribers')
+    this.SubscriberSubscription = this.XosModelStore.query('Tenantroot', '/core/tenantroots')
       .subscribe(
         (res) => {
           this.combineData(res, 'subscribers');
@@ -192,7 +192,8 @@
       targetId = this.d3Id('network', tenant.subscriber_network_id);
     }
     else if (tenant.subscriber_root_id) {
-      targetId = this.d3Id('subscriber', tenant.subscriber_root_id);
+      // FIXME understand what's the correct model for the subscriber
+      targetId = this.d3Id('tenantroot', tenant.subscriber_root_id);
     }
     return targetId;
   }
