diff --git a/src/main/jastadd/gen/Package.relast b/src/main/jastadd/gen/Package.relast
index ea32545781a9288dca92f444503c39c64dcd01c7..5375c99a9ea93652b719bc0cdee47c51c7035c72 100644
--- a/src/main/jastadd/gen/Package.relast
+++ b/src/main/jastadd/gen/Package.relast
@@ -11,8 +11,8 @@ GradleFile:TemplateFile ;
 
 abstract JavaFile:TemplateFile ;
 NodeFile:JavaFile ;
-SubscriberFile:JavaFile ;
-ServerFile:JavaFile ;
+SubscriberFile:JavaFile ::= <NetCount:Integer> <SubscriberCount:Integer>;
+ServerFile:JavaFile ::= <NetCount:Integer> <ServerCount:Integer>;
 MainFile:JavaFile ;
 MapperFile:JavaFile ;
 TokenFile:JavaFile ;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java
index bd96711cd071cef60d46a1ba1963c41f40c84231..edea8a0082e6857ffce2df835e1e88783bda39f6 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java
@@ -18,13 +18,13 @@ public class Main {
 
     public static void main(java.lang.String[] args) throws IOException {
 
-        if(args.length != 1){
-            System.out.println("Error: Invalid arguments.");
-            return;
-        }
+    //    if(args.length != 1){
+      //      System.out.println("Error: Invalid arguments.");
+       //     return;
+       // }
 
-        String configPath = args[0];
-        // String configPath = "src/test/resources/GeneratorConfig.json";
+        //String configPath = args[0];
+        String configPath = "src/test/resources/GeneratorConfig.json";
 
         ObjectMapper generatorConfigObjectMapper = new ObjectMapper();
         GeneratorConfig gc = generatorConfigObjectMapper.readValue(Files.readString(Paths.get(configPath)), GeneratorConfig.class);
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java
index c19c514194652515bbea00e387951cf0481cbaf0..6c0ce0c69fd4984f54c3f58e97b7f8502a6597d7 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java
@@ -64,13 +64,13 @@ public class PackageStructureBuilder {
             if(pf.isTemplateFile()) {
 
                 if(pf.isJavaFile()){
-                    System.out.println("Writing file " + pf.getName() +  " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java");
+                  //  System.out.println("Writing file " + pf.getName() +  " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java");
 
-                    System.out.println("Content: \n" + pf.asTemplateFile().getFileContent());
+                    //System.out.println("Content: \n" + pf.asTemplateFile().getFileContent());
 
                     writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java", pf.asTemplateFile().getFileContent());
                 }else {
-                    System.out.println("Writing file " + pf.getName() +  " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName());
+                    //System.out.println("Writing file " + pf.getName() +  " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName());
                     writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName(), pf.asTemplateFile().getFileContent());
                 }
             }
@@ -138,6 +138,8 @@ public class PackageStructureBuilder {
                         if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_SERVICE_REQUEST_OUT)) {
                             ServerFile server = new ServerFile();
                             server.setName("Node" + i + "Server" + serverCount);
+                            server.setNetCount(i);
+                            server.setServerCount(serverCount);
                             server.setFileID(UUID.randomUUID().toString());
                             pd.addFile(server);
                             serverCount++;
@@ -146,6 +148,8 @@ public class PackageStructureBuilder {
                                 || transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_IN)) {
                             SubscriberFile subscriber = new SubscriberFile();
                             subscriber.setName("Node" + i + "Subscriber" + subscriberCount);
+                            subscriber.setNetCount(i);
+                            subscriber.setSubscriberCount(subscriberCount);
                             subscriber.setFileID(UUID.randomUUID().toString());
                             pd.addFile(subscriber);
                             subscriberCount++;
@@ -363,9 +367,10 @@ public class PackageStructureBuilder {
 
                             if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_LIMITED_IN)
                                     || transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_IN)) {
-                                pf.setName("Node" + i + "Subscriber" + (subscriberCountMap.get(nets.get(i).getId()) -1 ));
+                                System.out.println("t:" + t.getId());
+                                pf.setName("Node" + pf.asSubscriberFile().getNetCount() + "Subscriber" + pf.asSubscriberFile().getSubscriberCount());
                                 pf.asSubscriberFile().generate();
-                                subscriberCountMap.put(nets.get(i).getId(), subscriberCountMap.get(nets.get(i).getId()) + 1);
+                                //subscriberCountMap.put(nets.get(i).getId(), subscriberCountMap.get(nets.get(i).getId()) + 1);
                                 visitedPackageFileIDs.add(pf.getFileID());
                             }
                         }
diff --git a/src/main/resources/mustache/JavaMain.mustache b/src/main/resources/mustache/JavaMain.mustache
index 63a5bf41398d2c0ad9ac339792f42b2d9ef15dda..b4e6585d23b1844d61f7fa86062ecdcf542e427d 100644
--- a/src/main/resources/mustache/JavaMain.mustache
+++ b/src/main/resources/mustache/JavaMain.mustache
@@ -1,7 +1,6 @@
 {{#mainExecutionContext}}
 package de.tudresden.inf.st.{{{packageNamespace}}};
 
-import com.fasterxml.jackson.databind.ObjectMapper;
 import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback;
 import de.tudresden.inf.st.pnml.engine.execution.TransitionCallbackService;
 import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode;
@@ -13,9 +12,15 @@ import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser;
 import de.tudresden.inf.st.sample.balloon.Token;
 import de.tudresden.inf.st.sample.callback.AbstractNetCallback;
 import de.tudresden.inf.st.sample.callback.CallbackMapper;
-import de.tudresden.inf.st.sample.communication.Node2Subscriber1;
-import de.tudresden.inf.st.sample.nodes.Node1;
-import de.tudresden.inf.st.sample.nodes.Node2;
+{{#serverInfos}}
+import de.tudresden.inf.st.sample.communication.{{{serverClassName}}};
+{{/serverInfos}}
+{{#subscriberInfos}}
+import de.tudresden.inf.st.sample.communication.{{{subscriberClassName}}};
+{{/subscriberInfos}}
+{{#nodeInfos}}
+import de.tudresden.inf.st.sample.nodes.{{{nodeClassName}}};
+{{/nodeInfos}}
 import org.ros.node.DefaultNodeMainExecutor;
 import org.ros.node.NodeConfiguration;
 import org.ros.node.NodeMainExecutor;
@@ -75,9 +80,9 @@ public class Main {
          */
 
          {{#nodeInfos}}
-         Map<String, List<AbstractNetCallback>> callbackMap{{{nodeName}}} = CallbackMapper.initCallbacksFor{{{nodeName}}}(petriNets.get({{{nodeIndex}}}));
+         Map<String, List<AbstractNetCallback>> callbackMap{{{nodeClassName}}} = CallbackMapper.initCallbacksFor{{{nodeClassName}}}(petriNets.get({{{nodeIndex}}}));
 
-         for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap{{{nodeName}}}.entrySet()) {
+         for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap{{{nodeClassName}}}.entrySet()) {
              for(AbstractNetCallback anc : entry.getValue()){
                 transitionCallbackService.registerCallback(petriNets.get({{{nodeIndex}}}), entry.getKey(), anc);
              }
@@ -108,4 +113,7 @@ public class Main {
                   start();
               } };
           {{/nodeInfos}}
+
+         }
+        }
 {{/mainExecutionContext}}
\ No newline at end of file
diff --git a/src/test/resources/EngineConfig.json b/src/test/resources/EngineConfig.json
index dec50c2628996d2a3e55bb9695964d16cf1b4237..53855b3de91f045427a103fde80d3c15056c8fc9 100644
--- a/src/test/resources/EngineConfig.json
+++ b/src/test/resources/EngineConfig.json
@@ -1,6 +1,9 @@
 [{
-	"net" : "/home/sebastian/Desktop/publisher-net.pnml"
+	"net" : "/home/sebastian/Desktop/tmp/net00.pnml"
 },
 {
-	"net" : "/home/sebastian/Desktop/subscriber-net.pnml"
+	"net" : "/home/sebastian/Desktop/tmp/net01.pnml"
+},
+{
+	"net" : "/home/sebastian/Desktop/tmp/net02.pnml"
 }]
diff --git a/src/test/resources/GeneratorConfig.json b/src/test/resources/GeneratorConfig.json
index 9c185f5402837000fa30cd96c8939720eb5e538b..ca8bd504638918f52c170d3f51f133c3e571c3fb 100644
--- a/src/test/resources/GeneratorConfig.json
+++ b/src/test/resources/GeneratorConfig.json
@@ -3,9 +3,9 @@
   "rootName" : "sample-pkg",
   "namespace" : "sample",
   "version" : "0.1",
-  "configFile" : "/home/sebastian/jastadd-workspaces/dineros-linked-ws/pnml-relast-tools/pnml-relast-pkg-gen/src/test/resources/EngineConfig.json",
+  "configFile" : "EngineConfig.json",
   "rosHost" : "localhost",
   "rosMasterUri" : "http://localhost:11311",
   "mqttHost" : "localhost",
-  "targetPath" :"/home/sebastian/Desktop"
+  "targetPath" :""
 }
\ No newline at end of file