diff --git a/views/ngXosViews/serviceTopology/src/js/d3.js b/views/ngXosViews/serviceTopology/src/js/d3.js
index 04df8fc..59c3b5f 100644
--- a/views/ngXosViews/serviceTopology/src/js/d3.js
+++ b/views/ngXosViews/serviceTopology/src/js/d3.js
@@ -91,6 +91,19 @@
 
     var i = 0;
 
+    const getInitialNodePosition = (node, source, direction = 'enter') => {
+      // this is the starting position
+      // TODO if enter use y0 and x0 else x and y
+      // TODO start from the node that has been clicked
+      if(node.parent){
+        if(direction === 'enter' && node.parent.y0 && node.parent.x0){
+          return `translate(${node.parent.y0},${node.parent.x0})`;
+        }
+        return `translate(${node.parent.y},${node.parent.x})`;
+      }
+      return `translate(${source.y0},${source.x0})`;
+    };
+
     // given a canvas, a layout and a data source, draw a tree layout
     const updateTree = (svg, layout, source) => {
 
@@ -126,9 +139,9 @@
       var nodeEnter = node.enter().append('g')
         .attr({
           class: d => `node ${d.type}`,
-          transform: d => `translate(${source.y0},${source.x0})` // this is the starting position
+          transform: d => getInitialNodePosition(d, source)
         });
-      
+
       const subscriberNodes = nodeEnter.filter('.subscriber');
       const internetNodes = nodeEnter.filter('.internet');
       const serviceNodes = nodeEnter.filter('.service');
@@ -206,7 +219,7 @@
       var nodeExit = node.exit().transition()
         .duration(serviceTopologyConfig.duration)
         .attr({
-          'transform': d => `translate(${source.y},${source.x})`
+          'transform': d => getInitialNodePosition(d, source, 'exit')
         })
         .remove();
 
