diff --git a/src/main/java/tmltranslator/HwNoC.java b/src/main/java/tmltranslator/HwNoC.java
index 1fb851cd260ec710a50a9a0d8e46c4d936aa76bb..e9a7913665bd7362b831c98e26d835b05ac22ece 100755
--- a/src/main/java/tmltranslator/HwNoC.java
+++ b/src/main/java/tmltranslator/HwNoC.java
@@ -193,11 +193,11 @@ public class HwNoC extends HwCommunicationNode  {
         for(String s: placementMap.keySet()) {
             Point p = placementMap.get(s);
             if (p.x == x && p.y == y) {
-                TraceManager.addDev("Found " + s + " for x=" + x + " y=" +y);
+                //TraceManager.addDev("Found " + s + " for x=" + x + " y=" +y);
                 return s;
             }
         }
-        TraceManager.addDev("Returning null for x=" + x + " y=" +y);
+        //TraceManager.addDev("Returning null for x=" + x + " y=" +y);
         return null;
     }
 
diff --git a/src/main/java/tmltranslator/TMLArchitecture.java b/src/main/java/tmltranslator/TMLArchitecture.java
index 9e999b94592b1ce95d2116e3755592725a73a57f..f86193101e13977a38ab6699aefaeff4f8d8eef5 100755
--- a/src/main/java/tmltranslator/TMLArchitecture.java
+++ b/src/main/java/tmltranslator/TMLArchitecture.java
@@ -301,9 +301,9 @@ public class TMLArchitecture {
 
     public HwNode getHwNodeByName(String _name) {
         for (HwNode node : hwnodes) {
-            TraceManager.addDev("Comparing >" + node.getName() + "< vs >" + _name + "<");
+            //TraceManager.addDev("Comparing >" + node.getName() + "< vs >" + _name + "<");
             if (node.getName().compareTo(_name) == 0) {
-                TraceManager.addDev("Returning node " + node.getName());
+                //TraceManager.addDev("Returning node " + node.getName());
                 return node;
             }
         }
diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java
index 3acf608573e6dc7864c4258b4bf26f02711948da..59b987ddc942840c93979dff1253bd8d401d1d77 100755
--- a/src/main/java/tmltranslator/TMLModeling.java
+++ b/src/main/java/tmltranslator/TMLModeling.java
@@ -2253,7 +2253,7 @@ public class TMLModeling<E> {
         for(TMLTask task: tasks) {
             result += "\tTask " + task.getTaskName() + ":" + task.getWorstCaseIComplexity() + "\n";
         }
-        TraceManager.addDev("Worst Case I Complexity:\n" + result);
+        //TraceManager.addDev("Worst Case I Complexity:\n" + result);
     }
 
 
diff --git a/src/main/java/tmltranslator/TMLTextSpecification.java b/src/main/java/tmltranslator/TMLTextSpecification.java
index 6e9763115e3d2928605ed791e045534618cb6ec8..299508698f43bbd7bf2d16e38470c19ca1e667c2 100755
--- a/src/main/java/tmltranslator/TMLTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLTextSpecification.java
@@ -233,7 +233,7 @@ public class TMLTextSpecification<E> {
                 if (!ch.isInfinite()) {
                     sb += SP + ch.getMax();
                 }
-                TraceManager.addDev("Declaration. Handling channel " + ch.getName());
+                //TraceManager.addDev("Declaration. Handling channel " + ch.getName());
                 if (ch.getOriginTask() == null) {
                     TraceManager.addDev("Missing origin Task in " + ch.getName());
                 }
@@ -295,7 +295,7 @@ public class TMLTextSpecification<E> {
                 sb += SP + evt.getMaxSize();
             }
 
-            TraceManager.addDev("Handing Event:" + evt.getName());
+            //TraceManager.addDev("Handing Event:" + evt.getName());
             if (evt.getOriginTask() == null) {
                 TraceManager.addDev("Missing origin Task in " + evt.getName());
             }
@@ -460,7 +460,7 @@ public class TMLTextSpecification<E> {
             for (int k = 0; k < tmlch.getNbOfChannels(); k++) {
                 code = code + tmlch.getChannel(k).getName() + SP;
             }
-            TraceManager.addDev("Nb Of of samples in task " + task.getName() + " = " + tmlch.getNbOfSamples());
+            //TraceManager.addDev("Nb of samples in task " + task.getName() + " = " + tmlch.getNbOfSamples());
             code = code + modifyString(tmlch.getNbOfSamples());
             if (elt.securityPattern != null) {
                 code = code + SP + elt.securityPattern.name + CR;
diff --git a/src/main/java/tmltranslator/tonetwork/Link.java b/src/main/java/tmltranslator/tonetwork/Link.java
index 529b96a9f077a470f0691091397543394ffa0c70..3b5b2624489f346b03d3d2730bd89e386c923b44 100644
--- a/src/main/java/tmltranslator/tonetwork/Link.java
+++ b/src/main/java/tmltranslator/tonetwork/Link.java
@@ -82,8 +82,8 @@ public class Link {
         this.tmlm = tmlm;
         this.tarch = tarch;
 
-        TraceManager.addDev("Adding link between previous (" + previousRouter.getXPos() + "," + previousRouter.getYPos() +
-        ") and next (" + nextRouter.getXPos() + "," + nextRouter.getYPos() + ")");
+        //TraceManager.addDev("Adding link between previous (" + previousRouter.getXPos() + "," + previousRouter.getYPos() +
+        //") and next (" + nextRouter.getXPos() + "," + nextRouter.getYPos() + ")");
 
         if (tmlm ==null) {
             TraceManager.addDev("null modeling");
@@ -100,8 +100,8 @@ public class Link {
         this.tmlm = tmlm;
         this.add = "_" + add;
 
-        TraceManager.addDev("Adding link between previous (" + previousRouter.getXPos() + "," + previousRouter.getYPos() +
-                ") and next (" + nextRouter.getXPos() + "," + nextRouter.getYPos() + ")" + " with add=" + add);
+        //TraceManager.addDev("Adding link between previous (" + previousRouter.getXPos() + "," + previousRouter.getYPos() +
+         //       ") and next (" + nextRouter.getXPos() + "," + nextRouter.getYPos() + ")" + " with add=" + add);
 
         if (tmlm ==null) {
             TraceManager.addDev("null modeling");
diff --git a/src/main/java/tmltranslator/tonetwork/TMAP2Network.java b/src/main/java/tmltranslator/tonetwork/TMAP2Network.java
index 681ef67174a7c193e3d82d44e17c6aa5ae15d9c7..d805b16f948a21c08b90b48276292878b81d8aac 100644
--- a/src/main/java/tmltranslator/tonetwork/TMAP2Network.java
+++ b/src/main/java/tmltranslator/tonetwork/TMAP2Network.java
@@ -285,6 +285,7 @@ public class TMAP2Network<E>  {
         }
 
         // *** Create routers
+        Vector<HwExecutionNode> fakeCPUs = new Vector<>();
         for(i=0; i<nocSize; i++) {
             for(j=0; j<nocSize; j++) {
                 // We must find the number of apps connected on this router
@@ -296,6 +297,7 @@ public class TMAP2Network<E>  {
                     HwCPU missingCPU = new HwCPU("EmptyCPUForDomain" + i + "_" + j);
                     tmla.addHwNode(missingCPU);
                     hwExecNode = missingCPU;
+                    fakeCPUs.add(missingCPU);
                 }
 
                 TranslatedRouter tr = new TranslatedRouter<>(this, tmlmapping, noc, channelsCommunicatingViaNoc,
@@ -384,12 +386,7 @@ public class TMAP2Network<E>  {
             }
         }
 
-        // Printing routers
-        for(i=0; i<nocSize; i++) {
-            for(j=0; j<nocSize; j++) {
-                TraceManager.addDev(routers[i][j].toString() + "\n");
-            }
-        }
+
 
 
 
@@ -397,40 +394,40 @@ public class TMAP2Network<E>  {
         for(i=0; i<nocSize; i++) {
             for(j=0; j<nocSize; j++) {
                 // We must find the number of apps connected on this router
-                String s = noc.getHwExecutionNode(i, j);
-                HwExecutionNode node = null;
+                HwExecutionNode node = routers[i][j].getHwExecutionNode();
                 HwBus bus;
-                if (s == null) {
-                    TraceManager.addDev(("No HwExecutionNode for " + i + "_" + j));
-                    HwCPU cpu = new HwCPU("CPUfor_" + i + "_" + j);
-                    tmla.addHwNode(cpu);
-                    node = cpu;
-
-                    bus = new HwBus(cpu.getName() + "__bus");
-                    HwMemory mem = new HwMemory(cpu.getName() + "__mem");
+                if (fakeCPUs.contains(node)) {
+                    bus = new HwBus(node.getName() + "__bus");
+                    HwMemory mem = new HwMemory(node.getName() + "__mem");
                     tmla.addHwNode(bus);
                     tmla.addHwNode(mem);
 
-                    HwLink cpuToBus = new HwLink(cpu.getName() + "__tocpu");
-                    cpuToBus.setNodes(bus, cpu);
+                    HwLink cpuToBus = new HwLink(node.getName() + "__tocpu");
+                    cpuToBus.setNodes(bus, node);
                     tmla.addHwLink(cpuToBus);
 
-                    HwLink memToBus = new HwLink(cpu.getName() + "__tomem");
+                    HwLink memToBus = new HwLink(node.getName() + "__tomem");
                     memToBus.setNodes(bus, mem);
                     tmla.addHwLink(memToBus);
 
                 } else {
-                    node = tmlarchi.getHwExecutionNodeByName(s);
                     bus = tmla.getHwBusByName(node.getName() + "__bus");
-                    TraceManager.addDev("Found bus=" + bus);
+                    //TraceManager.addDev("Found bus=" + bus);
                 }
-                TraceManager.addDev("Using bus=" + bus + " name=" + bus.getName());
+                //TraceManager.addDev("Using bus=" + bus + " name=" + bus.getName());
                 routers[i][j].makeHwArchitectureAndMapping(node, bus);
             }
         }
 
 
 
+        // Printing routers
+        for(i=0; i<nocSize; i++) {
+            for(j=0; j<nocSize; j++) {
+                TraceManager.addDev(routers[i][j].toString() + "\n");
+            }
+        }
+
 
 
 
diff --git a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
index 6840e760237618ff880246e5b630f7a98cee2423..c3cb268530e105d00163cb6cb225de78251438ff 100644
--- a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
+++ b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
@@ -143,6 +143,9 @@ public class TranslatedRouter<E> {
         return yPos;
     }
 
+    public HwExecutionNode getHwExecutionNode() {
+        return myHwExecutionNode;
+    }
 
     private String getInfo() {
         return "__R" + xPos + "_" + yPos;
@@ -158,7 +161,7 @@ public class TranslatedRouter<E> {
         // MUX for the different writing tasks
         // For each writing channel of the corresponding CPU, we need MUX to be created.
         // We first get the corresponding CPU
-        String nameOfExecNode = noc.getHwExecutionNode(xPos, yPos);
+        /*String nameOfExecNode = noc.getHwExecutionNode(xPos, yPos);
         if (nameOfExecNode == null) {
             nameOfExecNode = "fakeCPU_" + xPos + "_" + yPos;
         } else {
@@ -169,7 +172,9 @@ public class TranslatedRouter<E> {
             } else {
                 TraceManager.addDev("Found an exec node for (" + xPos + "," + yPos + "): " + execNode.getName());
             }
-        }
+        }*/
+        execNode = myHwExecutionNode;
+        String nameOfExecNode = execNode.getName();
 
         // Then, we need to find the channels starting from/arriving to a task mapped on this execNode
         Vector<TMLChannel> inputChannels = new Vector<>();
@@ -371,7 +376,7 @@ public class TranslatedRouter<E> {
 
                         }
 
-                        TraceManager.addDev("xPos=" + xPos + " yPos=" + yPos + " portNb=" + portNb + " vnNb=" + vcNb);
+                        //TraceManager.addDev("xPos=" + xPos + " yPos=" + yPos + " portNb=" + portNb + " vnNb=" + vcNb);
                         TMLEvent vcSelect = evtSelectVC[portNb][vcNb];
                         vcSelect.setDestinationTask(taskOUTForVC);
 
@@ -542,7 +547,7 @@ public class TranslatedRouter<E> {
                     tmlm.addEvent(evtSelectVC[i][j]);
                 }
             } else {
-                TraceManager.addDev("xPos=" + xPos + " yPos=" + yPos + " is not playing the role of previous for port=" + i);
+                //TraceManager.addDev("xPos=" + xPos + " yPos=" + yPos + " is not playing the role of previous for port=" + i);
             }
         }