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 9b2b613a03e446c006db77a892f2ff9789959433..a9b2aaaa79ba460457015ac3147373b734a36544 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
@@ -38,8 +38,8 @@ public class Main {
         // ObjectMapper gcObjectMapper = new ObjectMapper();
         // GeneratorConfig config = gcObjectMapper.readValue(Files.readString(Paths.get(args[1])), new TypeReference<List<NetInfo>>(){});
 
-        GeneratorConfig gc = new GeneratorConfig("sample", "sample-pkg","/home/sebastian/git/dineros/pnml-relast-tools/pnml-relast-pkg-gen/src/test/java/Token.java",
-                "sample","0.1","/home/sebastian/git/dineros/pnml-relast-tools/pnml-relast-pkg-gen/src/test/resources/EngineConfig.json","localhost",
+        GeneratorConfig gc = new GeneratorConfig("sample", "sample-pkg","/home/sebastian/jastadd-workspaces/dineros-linked-ws/pnml-relast-tools/pnml-relast-pkg-gen/src/test/java/Token.java",
+                "sample","0.1","/home/sebastian/jastadd-workspaces/dineros-linked-ws/pnml-relast-tools/pnml-relast-pkg-gen/src/test/resources/EngineConfig.json","localhost",
                 "http://localhost:11311","localhost","/home/sebastian/Desktop");
 
         DinerosPackage dp = new DinerosPackage();
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 f531a68a68b1fed0fd8b93d5d69eaed4547eecf9..c32ab9b1b85d6a9e1bc2ff3282f0c57237fc56e9 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
@@ -16,11 +16,9 @@ public class PackageStructureBuilder {
 
     private static final String FILE_PATH = "../pnml-relast-pkg-gen/src/main/resources/static/";
 
-    public static boolean build(String targetPath, DinerosPackage dinerosPackage, List<NetInfo> petriNetFilePaths, String engineVersion
+    public static boolean build(String packagePath, DinerosPackage dinerosPackage, List<NetInfo> petriNetFilePaths, String engineVersion
                                , String rosHost, String rosMasterUri, String mqttHost) {
 
-        String packagePath = targetPath; // + "/" + dinerosPackage.getRootName();
-
         List<PetriNet> nets = new ArrayList<>();
 
         for (NetInfo n : petriNetFilePaths) {
@@ -66,11 +64,15 @@ public class PackageStructureBuilder {
 
         for (PackageFile pf : packageDirectory.getFileList()){
             if(pf.isTemplateFile()) {
-                System.out.println("Writing file " + pf.getName() +  " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName());
 
                 if(pf.isJavaFile()){
+                    System.out.println("Writing file " + pf.getName() +  " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java");
+
+                    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());
                     writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName(), pf.asTemplateFile().getFileContent());
                 }
             }
@@ -383,20 +385,18 @@ public class PackageStructureBuilder {
             }
 
             for (PackageFile pf : dinerosPackage.allPackageFiles()) {
-
                 if (!visitedPackageFileIDs.contains(pf.getFileID())) {
-                    visitedPackageFileIDs.add(pf.getFileID());
                     if (pf.isSubscriberFile()) {
-
                         for (Transition t : nets.get(i).allTransitions()) {
 
                             String transitionType = t.asInputSignalTransition().getStaticTransitionInformation().getType();
 
                             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()));
+                                pf.setName("Node" + i + "Subscriber" + (subscriberCountMap.get(nets.get(i).getId()) -1 ));
                                 pf.asSubscriberFile().generate();
                                 subscriberCountMap.put(nets.get(i).getId(), subscriberCountMap.get(nets.get(i).getId()) + 1);
+                                visitedPackageFileIDs.add(pf.getFileID());
                             }
                         }
                     }
@@ -409,8 +409,9 @@ public class PackageStructureBuilder {
 
                             if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_SERVICE_REQUEST_OUT)) {
                                 pf.setName("Node" + i + "Server" + serviceCountMap.get(nets.get(i).getId()));
-                                pf.asSubscriberFile().generate();
+                                pf.asServerFile().generate();
                                 serviceCountMap.put(nets.get(i).getId(), serviceCountMap.get(nets.get(i).getId()) + 1);
+                                visitedPackageFileIDs.add(pf.getFileID());
                             }
                         }
                     }
@@ -418,10 +419,12 @@ public class PackageStructureBuilder {
                     if (pf.getName().equals("build.gradle")) {
                         String mainClassName = "de.tudresden.inf.st." + dinerosPackage.getNamespace() + ".Main.java";
                         pf.asGradleFile().generateBuildGradle(mainClassName, dinerosPackage.getName(), dinerosPackage.getVersion(), engineVersion);
+                        visitedPackageFileIDs.add(pf.getFileID());
                     }
 
                     if (pf.getName().equals("settings.gradle")) {
                         pf.asGradleFile().generateSettingsGradle(dinerosPackage.getRootName());
+                        visitedPackageFileIDs.add(pf.getFileID());
                     }
                 }
             }
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java b/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java
index 05ea871426c81e5fd11b8690605b77ede6cc7f1a..a98a57f214f066d4f87aa1b025d5735805d29a4c 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java
@@ -26,7 +26,8 @@ public class JavaClassGenUtil extends AbstractGenUtil{
 
         for(int i = 0; i < petriNetList.size(); i++){
 
-            NodeInfo nodeInfo = new NodeInfo(petriNetFiles.get(i), "node" + i,
+            String[] splitNetPath = petriNetFiles.get(i).split("/");
+            NodeInfo nodeInfo = new NodeInfo(splitNetPath[splitNetPath.length - 1], "node" + i,
                     String.valueOf(i), "Node" + i);
             nodeInfos.add(nodeInfo);
 
@@ -85,11 +86,11 @@ public class JavaClassGenUtil extends AbstractGenUtil{
 
         Map<String, Object> context = new HashMap<>();
         MapperContext mapperContext = new MapperContext(packageNamespace);
-        context.put("serverContext", mapperContext);
+        context.put("mapperContext", mapperContext);
 
         List<MapperInfo> mapperInfos = new ArrayList<>();
 
-        for(int i = 1; i < petriNets.size(); i++){
+        for(int i = 0; i < petriNets.size(); i++){
             MapperInfo mapperInfo = new MapperInfo("Node" + i);
             mapperInfos.add(mapperInfo);
         }
diff --git a/src/main/resources/mustache/JavaCallbackMapper.mustache b/src/main/resources/mustache/JavaCallbackMapper.mustache
index 04ca4cdd1c6ef9ef47948ef9bbabf0f6f6cd058c..6d399f93420591a2bd7b30a61dcc93b6245b68bf 100644
--- a/src/main/resources/mustache/JavaCallbackMapper.mustache
+++ b/src/main/resources/mustache/JavaCallbackMapper.mustache
@@ -1,27 +1,27 @@
 {{#mapperContext}}
-package de.tudresden.inf.st.{{{packageNamespace}}}.callback;
+    package de.tudresden.inf.st.{{{packageNamespace}}}.callback;
 
-import de.tudresden.inf.st.pnml.engine.execution.DefaultTransitionCallback;
-import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback;
-import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
-import de.tudresden.inf.st.pnml.jastadd.model.Transition;
+    import de.tudresden.inf.st.pnml.engine.execution.DefaultTransitionCallback;
+    import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback;
+    import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
+    import de.tudresden.inf.st.pnml.jastadd.model.Transition;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+    import java.util.ArrayList;
+    import java.util.HashMap;
+    import java.util.List;
+    import java.util.Map;
 
-public class CallbackMapper {
-{{#mapperInfos}}
+    public class CallbackMapper {
+    {{#mapperInfos}}
 
-    public static final Map<String, List<AbstractNetCallback>> initCallbacksFor{{{nodeName}}}(PetriNet petriNet){
+        public static final Map<String, List<AbstractNetCallback>> initCallbacksFor{{{nodeName}}}(PetriNet petriNet){
 
-        Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>();
+            Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>();
 
-        // TODO: implementation by user
+            // TODO: implementation by user
 
-        return callbackMap;
-    }
-{{/mapperInfos}}
-}
+            return callbackMap;
+            }
+    {{/mapperInfos}}
+        }
 {{/mapperContext}}
\ No newline at end of file
diff --git a/src/main/resources/mustache/JavaMain.mustache b/src/main/resources/mustache/JavaMain.mustache
index 5905e30dbdb78f103670bcc390b710ecaf173b27..63a5bf41398d2c0ad9ac339792f42b2d9ef15dda 100644
--- a/src/main/resources/mustache/JavaMain.mustache
+++ b/src/main/resources/mustache/JavaMain.mustache
@@ -1,4 +1,4 @@
-{{#mainContext}}
+{{#mainExecutionContext}}
 package de.tudresden.inf.st.{{{packageNamespace}}};
 
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -48,7 +48,7 @@ public class Main {
         // actual petri net paths are generated
         List<String> petriNetPaths = new ArrayList<>();
         {{#nodeInfos}}
-        petriNetPaths.add("src/main/resources/nets/{{{netName}}}.pnml");
+        petriNetPaths.add("src/main/resources/nets/{{{netName}}}");
         {{/nodeInfos}}
 
         List<PetriNet> petriNets = new ArrayList<>();
@@ -108,4 +108,4 @@ public class Main {
                   start();
               } };
           {{/nodeInfos}}
-{{/mainContext}}
\ No newline at end of file
+{{/mainExecutionContext}}
\ No newline at end of file