Drawing a rack with 2 Compute Nodes
diff --git a/views/ngXosViews/diagnostic/src/js/nodeDrawer.js b/views/ngXosViews/diagnostic/src/js/nodeDrawer.js
index 2548812..128848d 100644
--- a/views/ngXosViews/diagnostic/src/js/nodeDrawer.js
+++ b/views/ngXosViews/diagnostic/src/js/nodeDrawer.js
@@ -10,6 +10,9 @@
 
   angular.module('xos.serviceTopology')
   .service('NodeDrawer', function(d3, serviceTopologyConfig, RackHelper){
+
+    var _this = this;
+
     this.addNetworks = (nodes) => {
       nodes.append('path')
       .attr({
@@ -131,9 +134,10 @@
 
       // if there are Compute Nodes
       if(nodeContainer.length > 0){
-        angular.forEach(nodeContainer.data(), (computeNode) => {
-          this.drawInstances(nodeContainer, computeNode.instances);
-        });
+        // draw instances for each compute node
+        nodeContainer.each(function(a){
+          _this.drawInstances(d3.select(this), a.instances);
+        })
       }
 
     };
@@ -150,7 +154,7 @@
     };
 
     this.drawInstances = (container, instances) => {
-
+      
       let {width, height} = container.node().getBoundingClientRect();
 
       let elements = container.selectAll('.instances')
@@ -166,7 +170,7 @@
       .transition()
       .duration(serviceTopologyConfig.duration)
       .attr({
-        transform: d => `translate(${RackHelper.getInstancePosition(d.d3Id.replace('instance-', '') - 1)})`
+        transform: (d, i) => `translate(${RackHelper.getInstancePosition(i)})`
       });
 
       instanceContainer.append('rect')