diff --git a/src/main/java/de/tudresden/inf/st/sample/Main.java b/src/main/java/de/tudresden/inf/st/sample/Main.java
index 1b91b2f05f85878f471ca4209a51d4066cde344c..041de185855a382ccb82397e7deaa8ecc59efb83 100644
--- a/src/main/java/de/tudresden/inf/st/sample/Main.java
+++ b/src/main/java/de/tudresden/inf/st/sample/Main.java
@@ -1,7 +1,5 @@
 package de.tudresden.inf.st.sample;
 
-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;
 import de.tudresden.inf.st.pnml.engine.transform.PetriNetInitializer;
@@ -9,8 +7,7 @@ import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage;
 import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking;
 import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
 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.AbstractHandler;
 import de.tudresden.inf.st.sample.callback.CallbackMapper;
 import de.tudresden.inf.st.sample.communication.Node2Subscriber1;
 import de.tudresden.inf.st.sample.nodes.Node1;
@@ -76,18 +73,18 @@ public class Main {
          * Callback and token integration
          */
 
-        Map<String, List<AbstractNetCallback>> callbackMap1 = CallbackMapper.initCallbacksForNode1(petriNets.get(0));
+        Map<String, List<AbstractHandler>> callbackMap1 = CallbackMapper.initCallbacksForNode1(petriNets.get(0));
 
-        for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap1.entrySet()) {
-            for(AbstractNetCallback anc : entry.getValue()){
+        for (Map.Entry<String, List<AbstractHandler>> entry : callbackMap1.entrySet()) {
+            for(AbstractHandler anc : entry.getValue()){
                 transitionCallbackService.registerCallback(petriNets.get(0), entry.getKey(), anc);
             }
         }
 
-        Map<String, List<AbstractNetCallback>> callbackMap2 = CallbackMapper.initCallbacksForNode2(petriNets.get(1));
+        Map<String, List<AbstractHandler>> callbackMap2 = CallbackMapper.initCallbacksForNode2(petriNets.get(1));
 
-        for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap2.entrySet()) {
-            for(AbstractNetCallback anc : entry.getValue()){
+        for (Map.Entry<String, List<AbstractHandler>> entry : callbackMap2.entrySet()) {
+            for(AbstractHandler anc : entry.getValue()){
                 transitionCallbackService.registerCallback(petriNets.get(1), entry.getKey(), anc);
             }
         }
diff --git a/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java b/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java
index 43cbf6c728144764ab3fde6001c2447882c0237d..2283f595cdcbe4024abc4bef77042dc466032369 100644
--- a/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java
+++ b/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java
@@ -6,23 +6,32 @@ import java.util.List;
 // input file provide by user
 public class Token {
 
-    private String field;
+    private String object;
+    private String color;
+    private boolean pickPlaceSuccess;
+    private List<String> errorList = new ArrayList<>();
 
-    private List<String> fieldList = new ArrayList<>();
-
-    public String getField() {
-        return field;
+    public String getObject() {
+        return object;
     }
 
-    public void setField(String field) {
-        this.field = field;
+    public void setObject(String object) {
+        this.object = object;
     }
 
-    public List<String> getFieldList() {
-        return fieldList;
+    public List<String> getErrorList() {
+        return errorList;
     }
 
-    public void setFieldList(List<String> fieldList) {
-        this.fieldList = fieldList;
+    public void setErrorList(List<String> errorList) {
+        this.errorList = errorList;
     }
+
+    public String getColor() { return color; }
+
+    public void setColor(String color) { this.color = color; }
+
+    public boolean isPickPlaceSuccess() { return pickPlaceSuccess; }
+
+    public void setPickPlaceSuccess(boolean pickPlaceSuccess) { this.pickPlaceSuccess = pickPlaceSuccess; }
 }
diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java b/src/main/java/de/tudresden/inf/st/sample/callback/AbstractHandler.java
similarity index 90%
rename from src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java
rename to src/main/java/de/tudresden/inf/st/sample/callback/AbstractHandler.java
index 96804024fc4b51c98d915e71786432e5b818aa8b..1f227706fee86f1a5281430c6610b80288dc899d 100644
--- a/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java
+++ b/src/main/java/de/tudresden/inf/st/sample/callback/AbstractHandler.java
@@ -13,13 +13,13 @@ import java.util.List;
 // only the token class is generated, this is a static class
 // this class gets extended by the user for concrete callbacks
 // this class hides (de-)serialisation of the tokens
-public abstract class AbstractNetCallback extends TransitionCallback {
+public abstract class AbstractHandler extends TransitionCallback {
 
-    public AbstractNetCallback(String id, int priority, List<String> params) {
+    public AbstractHandler(String id, int priority, List<String> params) {
         super(id, priority, params);
     }
 
-    public AbstractNetCallback(String id, int priority) {
+    public AbstractHandler(String id, int priority) {
         super(id, priority);
     }
 
diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java b/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java
index 4f96aae1de5d00f25d49760cf5830d7413533780..c595dd98badd9b46d63a1c693132a4e8d9a32eb9 100644
--- a/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java
+++ b/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java
@@ -1,7 +1,5 @@
 package de.tudresden.inf.st.sample.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;
 
@@ -16,9 +14,9 @@ import java.util.Map;
 public class CallbackMapper {
 
     // methods generated for each petri net
-    public static final Map<String, List<AbstractNetCallback>> initCallbacksForNode1(PetriNet petriNet){
+    public static final Map<String, List<AbstractHandler>> initCallbacksForNode1(PetriNet petriNet){
 
-        Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>();
+        Map<String, List<AbstractHandler>> callbackMap = new HashMap<>();
 
         // TODO: implementation by user
 
@@ -26,7 +24,7 @@ public class CallbackMapper {
 
         for(Transition t : petriNet.allTransitions()){
             if(t.asInputSignalTransition().getStaticTransitionInformation().isDefaultTransitionInformation()){
-                List<AbstractNetCallback> cbList = new ArrayList<>();
+                List<AbstractHandler> cbList = new ArrayList<>();
                 cbList.add(callback);
                 callbackMap.put(t.getId(), cbList);
             }
@@ -36,9 +34,9 @@ public class CallbackMapper {
     }
 
     // methods generated for each petri net
-    public static final Map<String, List<AbstractNetCallback>> initCallbacksForNode2(PetriNet petriNet){
+    public static final Map<String, List<AbstractHandler>> initCallbacksForNode2(PetriNet petriNet){
 
-        Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>();
+        Map<String, List<AbstractHandler>> callbackMap = new HashMap<>();
 
         // TODO: implementation by user
 
@@ -46,7 +44,7 @@ public class CallbackMapper {
 
         for(Transition t : petriNet.allTransitions()){
             if(t.asInputSignalTransition().getStaticTransitionInformation().isDefaultTransitionInformation()){
-                List<AbstractNetCallback> cbList = new ArrayList<>();
+                List<AbstractHandler> cbList = new ArrayList<>();
                 cbList.add(callback);
                 callbackMap.put(t.getId(), cbList);
             }
diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/FeedbackHandler.java b/src/main/java/de/tudresden/inf/st/sample/callback/FeedbackHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..24a884c63aa6a699f29b47260299a4de9f64a605
--- /dev/null
+++ b/src/main/java/de/tudresden/inf/st/sample/callback/FeedbackHandler.java
@@ -0,0 +1,33 @@
+package de.tudresden.inf.st.sample.callback;
+
+import de.tudresden.inf.st.sample.balloon.Token;
+
+import java.util.List;
+
+public class FeedbackHandler extends AbstractHandler{
+
+    public FeedbackHandler(String id, int priority) {
+        super(id, priority);
+    }
+
+    void print(String line) {
+        System.out.println(line);
+    }
+
+    @Override
+    public void processTokenCallback(List<Token> tokens) {
+
+        Token result = tokens.get(0);
+        String color = result.getColor();
+        String object = result.getObject();
+
+        if(result.isPickPlaceSuccess()){
+            print("Successfully sorted object " + object + " with color " + color);
+        } else {
+            print("Failed to sort object " + object);
+            result.getErrorList().forEach(err -> print(err));
+        }
+
+        tokens.subList(1, tokens.size()).clear();
+    }
+}
diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java b/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java
index 9bcd27ed1e58f9fbc5e243e2071b0d08a75c0c0e..f702fb91c02cf2ea12d3105d93ea647e7f830c03 100644
--- a/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java
+++ b/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java
@@ -4,7 +4,7 @@ import de.tudresden.inf.st.sample.balloon.Token;
 
 import java.util.List;
 
-public class SampleNetCallback extends AbstractNetCallback{
+public class SampleNetCallback extends AbstractHandler {
 
     public SampleNetCallback(String id, int priority, List<String> params) {
         super(id, priority, params);