diff --git a/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd b/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd
index 3dd67509afd60ae1e92546b35991926b3c880bf3..202bd1ba3ddf4ee46391e6827aefe9d33ded0dd4 100644
--- a/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd
+++ b/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd
@@ -11,6 +11,9 @@ aspect BalloonExecution{
         syn FiringSelectionFail TransitionSelectionResult.asFiringSelectionFail()=null;
         eq FiringSelectionFail.asFiringSelectionFail()=this;
 
+        syn FiringSelectionNone TransitionSelectionResult.asFiringSelectionNone()=null;
+        eq FiringSelectionNone.asFiringSelectionNone()=this;
+
         syn boolean TransitionSelectionResult.isFiringSelectionSuccess()=false;
         eq FiringSelectionSuccess.isFiringSelectionSuccess()=true;
 
@@ -20,6 +23,9 @@ aspect BalloonExecution{
         syn boolean TransitionSelectionResult.isFiringSelectionFail()=false;
         eq FiringSelectionFail.isFiringSelectionFail()=true;
 
+        syn boolean TransitionSelectionResult.isFiringSelectionNone()=false;
+        eq FiringSelectionNone.isFiringSelectionNone()=true;
+
         public Optional<BalloonMarking> BalloonMarking.fireTransition(Transition transition, BalloonCallbackStorage callbackStorage,
             InputSignalConnector inputSignalConnector,de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode node, boolean requireFlush) {
 
diff --git a/src/main/jastadd/engine/balloonMarking/BalloonExecution.relast b/src/main/jastadd/engine/balloonMarking/BalloonExecution.relast
index 66385e38cbd18d299a5f5463b96ab5e181a21cf9..f87f2ebcaa893fc8c0d51e5edd662b997ae25a86 100644
--- a/src/main/jastadd/engine/balloonMarking/BalloonExecution.relast
+++ b/src/main/jastadd/engine/balloonMarking/BalloonExecution.relast
@@ -7,4 +7,5 @@ abstract TransitionSelectionResult;
 FiringSelectionSuccess : TransitionSelectionResult;
 rel FiringSelectionSuccess.Transition -> Transition;
 FiringSelectionWait : TransitionSelectionResult ::= <WaitingTime:int>;
-FiringSelectionFail : TransitionSelectionResult;
\ No newline at end of file
+FiringSelectionFail : TransitionSelectionResult;
+FiringSelectionNone : TransitionSelectionResult;
\ No newline at end of file
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 d6e9ec4a3ae6594935786444aeb646e1af7de8f7..f34e737e29f1a064a005fc5b3a856b10fdb6a864 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
@@ -1,16 +1,13 @@
 package de.tudresden.inf.st.pnml.engine;
 
 import de.tudresden.inf.st.pnml.engine.execution.DefaultFinalTransitionHandler;
-import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler;
-import de.tudresden.inf.st.pnml.engine.testNodes.DinerosTestNode;
+import de.tudresden.inf.st.pnml.engine.example.DinerosTestNode;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
 import org.ros.node.DefaultNodeMainExecutor;
 import org.ros.node.NodeConfiguration;
 import org.ros.node.NodeMainExecutor;
 
 import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
 
 public class Main {
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/Client.java b/src/main/java/de/tudresden/inf/st/pnml/engine/example/Client.java
similarity index 97%
rename from src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/Client.java
rename to src/main/java/de/tudresden/inf/st/pnml/engine/example/Client.java
index 58077a61e21af6d9f1ec43e5a0ceea2ec6b2cdae..28b2d78ece492dd92acd1babc433ce582e791476 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/Client.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/example/Client.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.pnml.engine.testNodes;
+package de.tudresden.inf.st.pnml.engine.example;
 
 import org.ros.exception.RemoteException;
 import org.ros.exception.RosRuntimeException;
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/example/DinerosTestNode.java
similarity index 98%
rename from src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/DinerosTestNode.java
rename to src/main/java/de/tudresden/inf/st/pnml/engine/example/DinerosTestNode.java
index d931a9e9f2f02d4506b4168fe71fc879f104d5a0..d4c5d765b5c7d1b7c60c98a08fcc96e84c79ae09 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/DinerosTestNode.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/example/DinerosTestNode.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.pnml.engine.testNodes;
+package de.tudresden.inf.st.pnml.engine.example;
 
 import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/example/SensoricsNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/example/SensoricsNode.java
new file mode 100644
index 0000000000000000000000000000000000000000..99dbc8ab9a4c6d939fb9acad8d128c6743a2ee47
--- /dev/null
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/example/SensoricsNode.java
@@ -0,0 +1,76 @@
+package de.tudresden.inf.st.pnml.engine.example;
+
+import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode;
+import de.tudresden.inf.st.pnml.jastadd.model.*;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Set;
+
+public class SensoricsNode extends DiNeRosNode {
+
+    public SensoricsNode(String nodeName, PetriNet petriNet, String rcHost, String gcProtocol) {
+        super(nodeName, petriNet, rcHost, gcProtocol);
+    }
+
+    @Override
+    protected void nodeLoop() {}
+
+    @NotNull
+    private TransitionSelectionResult fireFirstEnabled(Set<Transition> enabledTransitions) {
+
+
+        FiringSelectionSuccess fsc = new FiringSelectionSuccess();
+
+        for (Transition t : enabledTransitions) {
+            fsc.setTransition(t);
+            break;
+        }
+
+        return fsc;
+    }
+
+    @Override
+    protected TransitionSelectionResult onMarkingChange(Set<Transition> enabledTransitions) {
+
+        for(Transition t : enabledTransitions){
+
+            if(t.getId().equals("GetSensorData")){
+                FiringSelectionSuccess sel = new FiringSelectionSuccess();
+                sel.setTransition(t);
+                return sel;
+            }
+
+            if(t.getId().equals("ProcessSensorData")){
+                FiringSelectionWait sel = new FiringSelectionWait();
+                sel.setWaitingTime(100);
+                return sel;
+            }
+        }
+
+        return new FiringSelectionNone();
+    }
+
+    @Override
+    protected TransitionSelectionResult onSignalChange(Set<Transition> enabledTransitions) {
+
+        for(Transition t : enabledTransitions){
+            if(t.getId().equals("GetSensorData")){
+                FiringSelectionSuccess sel = new FiringSelectionSuccess();
+                sel.setTransition(t);
+                return sel;
+            }
+        }
+
+        return new FiringSelectionNone();
+    }
+
+    @Override
+    protected TransitionSelectionResult onWaitEnded(Set<Transition> enabledTransitions) {
+        return fireFirstEnabled(enabledTransitions);
+    }
+
+    @Override
+    protected TransitionSelectionResult onStartupEnded(Set<Transition> enabledTransitions) {
+        return new FiringSelectionNone();
+    }
+}
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/Server.java b/src/main/java/de/tudresden/inf/st/pnml/engine/example/Server.java
similarity index 95%
rename from src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/Server.java
rename to src/main/java/de/tudresden/inf/st/pnml/engine/example/Server.java
index 16ec0956bc6ff6897e7d708279de6a7acce9dc82..d037ac0ed6f73572303f2b511b24ea58477e6a91 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/testNodes/Server.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/example/Server.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.pnml.engine.testNodes;
+package de.tudresden.inf.st.pnml.engine.example;
 
 import org.ros.namespace.GraphName;
 import org.ros.node.AbstractNodeMain;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/execution/TransitionHandler.java b/src/main/java/de/tudresden/inf/st/pnml/engine/execution/TransitionHandler.java
index 321f8e8349bf7a621b2f6c2185c1c57aec628eae..9a2554c9f7bc7444d6c072f7e35bdd93dd061839 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/execution/TransitionHandler.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/execution/TransitionHandler.java
@@ -14,7 +14,7 @@ public abstract class TransitionHandler{
 
     private String id;
     private int priority;
-    private List<String> params = new ArrayList<>();
+    protected List<String> params = new ArrayList<>();
 
     public TransitionHandler(String id, int priority, List<String> params) {
         this.id = id;
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 fc3f24bfc4650d90c54e84b6efdb317a15c24ee3..264194d4b4df7aa748cc77393c8704a69f44971e 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
@@ -227,12 +227,17 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
             }
         }
 
+        if(res.isFiringSelectionNone()){
+            return;
+        }
+
         if (res.isFiringSelectionFail()) {
             System.err.println("[DiNeROS-Node] [" + nodeName + "] Firing selection action failed!");
             return;
         }
 
-        System.out.println("FIRING TRANSITION");
+        System.out.println("[DiNeROS-Node] [" + nodeName + "] " +
+                "Firing Transition " + res.asFiringSelectionSuccess().getTransition().getId());
         marking.fireTransition(res.asFiringSelectionSuccess()
                 .getTransition(), callbackStorage, inputSignalConnector, this, true);