diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/Main.java b/src/main/java/de/tudresden/inf/st/pnml/engine/Main.java
index 94a7ce46dc7c56d3c7ee0f0d02d0b412ff0febe2..447e07d9a6a1109022826f7cdc1dd263105b9367 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/Main.java
@@ -23,15 +23,14 @@ public class Main {
 
         // topicTest();
 
-        testBaseNet();
+        // testBaseNet();
 
         // testServiceNets();
 
-        // isTest();
-
-        // osTest();
+        isTest();
     }
 
+    @SuppressWarnings("unused")
     private static void testBaseNet() {
 
         java.lang.String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/NodeNetTest.pnml";
@@ -56,61 +55,35 @@ public class Main {
         }
     }
 
-    /*
+    private static void isTest() {
 
-    @SuppressWarnings("unused")
-    private static void osTest() throws IOException, SAXException, ParserConfigurationException {
-        String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/os-test-1.pnml";
+        java.lang.String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/NodeNetSignalTest.pnml";
         PetriNet petriNet = PnmlParser.parsePnml(pnmlPath).get(0);
-        BalloonMarking bm = petriNet.initializeBalloonMarking();
 
-        PetriNetInitializer.initOutputSignalConnections(petriNet, "localhost", "mqtt");
-
-        //  dump(bm, "before");
-
-        System.out.println("Output Signal Values BEFORE: ");
-        for(Place p : petriNet.allPlaces()){
-            for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){
-                System.out.println(osb.getOutputSignalID() + " : " + osb.outputSignalValue());
-            }
-        }
+        for(Transition t : petriNet.allTransitions()){
 
-        try {
-            System.out.println("Sleeping for 2s");
-            TimeUnit.SECONDS.sleep(2);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
         }
 
-        // change marking
-        for(Place p : petriNet.allPlaces()){
-            BalloonToken bt = new BalloonToken();
-            bt.setValue("New Token");
+     /*   nodeConfiguration.setMasterUri(URI.create("http://localhost:11311"));
 
-            BalloonMarkedPlace bmp = bm.resolveBalloonPlace(p);
-            bmp.addBalloonMarking(bt);
-            //bmp.addBalloonMarking(bt);
-            petriNet.flushTreeCache();
+        DinerosTestNode diNeRosNode = new DinerosTestNode("TestNode", petriNet);
 
-            for ( OutputSignalBinding b : p.asOutputSignalPlace().getOutputSignalBindingList()){
-                System.out.println("New Num: " + bm.resolveBalloonPlace(p).getNumBalloonMarking());
-                System.out.println("New Value: " + b.outputSignalValue());
-            }
+        for(BalloonTransition bt : diNeRosNode.callbackStorage.getTransitionList()){
+            bt.getBalloonCallbacks().add(new DefaultFinalTransitionHandler("default_final_cb", 1));
         }
 
-        //  dump(bm, "after");
-
-        System.out.println("Output Signal Values AFTER: ");
-        for(Place p : petriNet.allPlaces()){
-            for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){
-                System.out.println(osb.getOutputSignalID() + " : " + osb.outputSignalValue());
-            }
-        }
+        new Thread(() -> nodeMainExecutor.execute(diNeRosNode, nodeConfiguration)) {{
+            start();
+        }};
 
-        System.out.println("-- MARKING --");
-        System.out.println(bm.print());
+        try {
+            Thread.sleep(2000);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }*/
     }
 
+    /*
     @SuppressWarnings("unused")
     private static void dump(BalloonMarking balloonMarking, String filename) throws IOException {
         Dumper.read(balloonMarking)
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
index 9ff3c60b2d26fe0453892c2107e74664dcd2e675..c0e520cd4290616db0e5b549ab86096d453ccf74 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
@@ -71,11 +71,12 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
         this.connectedNode.shutdown();
     }
 
-    public synchronized void notify(java.lang.String notificationType){
+    public void notify(java.lang.String notificationType){
 
         if (notificationType.equals(NOTIFICATION_MARKING_CHANGE)) {
             onMarkingChangeInternal(marking.enabledBalloonTransitions());
         } else if (notificationType.equals(NOTIFICATION_SIGNAL_CHANGE)) {
+            System.out.println("NOTIFICATION_SIGNAL_CHANGE");
             onSignalChangeInternal(marking.enabledBalloonTransitions());
         } else if (notificationType.equals(NOTIFICATION_WAIT_ENDED)) {
             onWaitEndedInternal(marking.enabledBalloonTransitions());
@@ -102,6 +103,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
             return res;
         }
 
+        System.out.println("FIRING TRANSITION");
         marking.fireTransition(res.asFiringSelectionSuccess()
                 .getTransition(), callbackStorage, inputSignalConnector, this,true);
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/DinerosTestNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/DinerosTestNode.java
index d00b700555c65b59cfcdd8c20c7b3b6a2fa16a69..bed0679e71c8a327ff549780ebc605bbe8a391db 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/DinerosTestNode.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/DinerosTestNode.java
@@ -42,9 +42,11 @@ public class DinerosTestNode extends DiNeRosNode {
     private TransitionSelectionResult fireFirstEnabled(Set<Transition> enabledTransitions) {
 
         System.out.println("Calling fireFirstEnabled");
+        System.out.println(marking.print());
         FiringSelectionSuccess fsc = new FiringSelectionSuccess();
 
-        for(Transition t : enabledTransitions){
+        System.out.println("#EnabledTrans: " + marking.enabledBalloonTransitions().size());
+        for(Transition t : marking.enabledBalloonTransitions()){
             System.out.println("Firing transition: " + t.getId());
             //System.out.println(marking.print());
             fsc.setTransition(t);
@@ -52,7 +54,9 @@ public class DinerosTestNode extends DiNeRosNode {
         }
 
         if(enabledTransitions.size() == 0){
-            return new FiringSelectionFail();
+            FiringSelectionWait fsw = new FiringSelectionWait();
+            fsw.setWaitingTime(1000);
+            return fsw;
         }
 
         return fsc;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/transform/PetriNetInitializer.java b/src/main/java/de/tudresden/inf/st/pnml/engine/transform/PetriNetInitializer.java
index 0f44f6f41ec480db8a18dc9ab7171d5a9f989fb3..83bfcbf86d80387ad1ad7cdf49f99500045dfa0e 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/transform/PetriNetInitializer.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/transform/PetriNetInitializer.java
@@ -77,7 +77,8 @@ public class PetriNetInitializer {
         target.setMutableTransitionInformation(tri);
     }
 
-    public static void initInputSignalConnections(PetriNet petriNet, String host, String protocol, InputSignalConnector inputSignalConnector, DiNeRosNode node) throws IOException {
+    public static void initInputSignalConnections(PetriNet petriNet, String host, String protocol,
+                                                  InputSignalConnector inputSignalConnector, DiNeRosNode node) throws IOException {
 
 
         for(String signalId : petriNet.getInputSignalDefinition().keySet()){
@@ -91,11 +92,18 @@ public class PetriNetInitializer {
 
             // internal java connections
             sc.connectCurrentValue("java://localhost:00/" + signalId, false);
-            inputSignalConnector.ragconnectJavaRegisterConsumer("java://localhost:00/" + signalId,
-                    bytes -> node.notify(DiNeRosNode.NOTIFICATION_SIGNAL_CHANGE));
+            //inputSignalConnector.ragconnectJavaRegisterConsumer("java://localhost:00/" + signalId,
+                  //  bytes -> node.notify(DiNeRosNode.NOTIFICATION_SIGNAL_CHANGE));
+
+            inputSignalConnector.ragconnectJavaRegisterConsumer(signalId, bytes -> notifyOnSignalChange(node));
         }
     }
 
+    public static void notifyOnSignalChange(DiNeRosNode node){
+        System.out.println("NOTIFY ON SIGNAL CHANGE");
+        node.notify(DiNeRosNode.NOTIFICATION_SIGNAL_CHANGE);
+    }
+
     public void init(PetriNet petriNet, String host, String protocol, InputSignalConnector isc, DiNeRosNode node){
 
         for(Transition t : petriNet.allTransitions()){
diff --git a/src/main/resources/nets/NodeNetSignalTest.pnml b/src/main/resources/nets/NodeNetSignalTest.pnml
index ee31ce70c7df54634cd5cc4522df82be2198f3f1..3f7634f2e75b70bef1b92d3b706edbcf5f722fee 100644
--- a/src/main/resources/nets/NodeNetSignalTest.pnml
+++ b/src/main/resources/nets/NodeNetSignalTest.pnml
@@ -61,7 +61,7 @@
                         <subnet>s1</subnet>
                         <inputsignalbinding>
                         </inputsignalbinding>
-                        <inputsignalclause>is1</inputsignalclause>
+                        <inputsignalclause>(is1)</inputsignalclause>
                     </toolspecific>
                     <name>
                         <text>t1</text>