diff --git a/ros2rag.common/.gitignore b/ros2rag.common/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..567609b1234a9b8806c5a05da6c866e480aa148d
--- /dev/null
+++ b/ros2rag.common/.gitignore
@@ -0,0 +1 @@
+build/
diff --git a/common/config.yaml b/ros2rag.common/config.yaml
similarity index 79%
rename from common/config.yaml
rename to ros2rag.common/config.yaml
index a18ba849e3714314ed726f9e2780839dc1cae3ae..8f49855352242a04efc633af2d30a8b0efa029dc 100644
--- a/common/config.yaml
+++ b/ros2rag.common/config.yaml
@@ -3,6 +3,8 @@ panda_mqtt_connector:
   topics:
     robotConfig: "robotconfig"
     dataConfig: "dataconfig"
+    trajectory: "trajectory"
+    nextStep: "ros2rag/nextStep"
   zone_size: 0.5
   zones:
     - "1 1"
@@ -21,3 +23,8 @@ panda_mqtt_connector:
   end_effectors:
     panda:
       EndEffector: "panda::panda_link7"
+  goal_poses:
+    - position: "0 0 0"
+      wait: "3"
+    - position: "1 1 1"
+      wait: "2"
diff --git a/common/proto/dataconfig.proto b/ros2rag.common/proto/dataconfig.proto
similarity index 100%
rename from common/proto/dataconfig.proto
rename to ros2rag.common/proto/dataconfig.proto
diff --git a/common/proto/linkstate.proto b/ros2rag.common/proto/linkstate.proto
similarity index 100%
rename from common/proto/linkstate.proto
rename to ros2rag.common/proto/linkstate.proto
diff --git a/common/proto/robotconfig.proto b/ros2rag.common/proto/robotconfig.proto
similarity index 100%
rename from common/proto/robotconfig.proto
rename to ros2rag.common/proto/robotconfig.proto
diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java
similarity index 73%
rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java
rename to ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java
index 092d498d6fcb7535eb016d06efeffeb54a8b9a52..13d92d927c1d59b4a9b0d099ca4b5cfe4f30c3c7 100644
--- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java
+++ b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java
@@ -1,6 +1,5 @@
-package de.tudresden.inf.st.ros2rag.starter.data;
+package de.tudresden.inf.st.ros2rag.common;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
@@ -19,9 +18,16 @@ public class DataConfiguration {
     public List<String> zones;
     public Map<String, SortedMap<String, String>> parts;
     public Map<String, SortedMap<String, String>> end_effectors;
+    public List<DataWorkPose> goal_poses;
   }
   public static class DataTopics {
     public String robotConfig;
     public String dataConfig;
+    public String trajectory;
+    public String nextStep;
+  }
+  public static class DataWorkPose {
+    public String position;
+    public String wait;
   }
 }
diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java
similarity index 68%
rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java
rename to ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java
index 0f9f0c0fa448d45bf9f3f7adb788af18b2d571e3..471c21abdb1a7cf8c5dc0cd193e9db8d542d1209 100644
--- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java
+++ b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java
@@ -1,9 +1,6 @@
-package de.tudresden.inf.st.ros2rag.starter;
+package de.tudresden.inf.st.ros2rag.common;
 
-import de.tudresden.inf.st.ros2rag.starter.ast.Link;
-import de.tudresden.inf.st.ros2rag.starter.ast.MqttHandler;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration.ActualConfiguration;
+import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration;
 
 import java.io.IOException;
 import java.util.Map;
@@ -15,12 +12,8 @@ import java.util.SortedMap;
  * @author rschoene - Initial contribution
  */
 public class Util {
-  public static void setMqttHost(RootElement model, ActualConfiguration config) throws IOException {
-    HostAndPort hostAndPort = split(config.server);
-    model.MqttSetHost(hostAndPort.host, hostAndPort.port);
-  }
 
-  public static void setMqttHost(MqttHandler handler, ActualConfiguration config) throws IOException {
+  public static void setMqttHost(SetHost handler, ActualConfiguration config) throws IOException {
     HostAndPort hostAndPort = split(config.server);
     handler.setHost(hostAndPort.host, hostAndPort.port);
   }
@@ -56,8 +49,8 @@ public class Util {
   }
 
   @FunctionalInterface
-  public interface RootElement {
-    void MqttSetHost(String host, int port) throws IOException;
+  public interface SetHost {
+    void setHost(String host, int port) throws IOException;
   }
 
   @FunctionalInterface
diff --git a/ros2rag.receiverstub/build.gradle b/ros2rag.receiverstub/build.gradle
index 96029829e1428aa711270c05cc61193f45775c47..da0cc2314042c7ed9d58af5f604d41fbfef3679a 100644
--- a/ros2rag.receiverstub/build.gradle
+++ b/ros2rag.receiverstub/build.gradle
@@ -21,14 +21,7 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.receiverstub.
 
 dependencies {
     implementation project(':ros2rag.starter')
-
-//    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
-//    implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jackson_version}"
-//    implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
-//    implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0'
-//    implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
-
-    protobuf files("$projectDir/../ros2rag.example/src/main/proto")
+    implementation project(':ros2rag.common')
 }
 
 test {
diff --git a/ros2rag.senderstub/build.gradle b/ros2rag.senderstub/build.gradle
index 4de593d825bc6616f440a4089051b4aa26326efd..8a0b44120af2f5f4a907533dafc077c5985622bf 100644
--- a/ros2rag.senderstub/build.gradle
+++ b/ros2rag.senderstub/build.gradle
@@ -22,9 +22,6 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.senderstub.Se
 dependencies {
     implementation project(':ros2rag.starter')
 
-//    implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0'
-//    implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
-
     protobuf files("$projectDir/../ros2rag.example/src/main/proto")
 }
 
diff --git a/ros2rag.starter/build.gradle b/ros2rag.starter/build.gradle
index 748b742ab7eef4b2abdce04567f8fa3685fb1fd4..a2e813046f9481e19f079cb31e47a56daff2d199 100644
--- a/ros2rag.starter/build.gradle
+++ b/ros2rag.starter/build.gradle
@@ -27,6 +27,7 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.starter.Start
 
 dependencies {
     implementation project (':ros2rag.base')
+    implementation project (':ros2rag.common')
     baseRuntimeClasspath project (':ros2rag.base')
 //    implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}"
     api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java b/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java
index 2f5b4dbd4c0a8e6f1b04250846ffa1b02ed59e16..63e9ea7ab7f933b0e6c41b8669c43aef195144f9 100644
--- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java
+++ b/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java
@@ -3,16 +3,15 @@ package de.tudresden.inf.st.ros2rag.starter;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
 import config.Dataconfig;
+import de.tudresden.inf.st.ros2rag.common.Util;
 import de.tudresden.inf.st.ros2rag.starter.ast.*;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration.ActualConfiguration;
+import de.tudresden.inf.st.ros2rag.common.DataConfiguration;
+import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Map.Entry;
-import java.util.SortedMap;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -83,7 +82,7 @@ public class StarterMain {
     logger.info("To exit the system cleanly, send a message to the topic 'exit', or use Ctrl+C.");
 
     mainHandler = new MqttHandler("mainHandler");
-    Util.setMqttHost(mainHandler, config);
+    Util.setMqttHost(mainHandler::setHost, config);
     mainHandler.waitUntilReady(2, TimeUnit.SECONDS);
     mainHandler.newConnection("exit", bytes -> exitCondition.countDown());
     mainHandler.newConnection("model", bytes -> logStatus(new String(bytes), robotArm));
diff --git a/ros2rag.starter/src/main/proto b/ros2rag.starter/src/main/proto
index b779e42177c5848d7afb8d64fd9cfd5c94a267fc..bb7d2bae29902b994e92987325a878a0fe318c69 120000
--- a/ros2rag.starter/src/main/proto
+++ b/ros2rag.starter/src/main/proto
@@ -1 +1 @@
-../../../common/proto/
\ No newline at end of file
+../../../ros2rag.common/proto/
\ No newline at end of file
diff --git a/ros2rag.tests/src/test/proto b/ros2rag.tests/src/test/proto
index b779e42177c5848d7afb8d64fd9cfd5c94a267fc..bb7d2bae29902b994e92987325a878a0fe318c69 120000
--- a/ros2rag.tests/src/test/proto
+++ b/ros2rag.tests/src/test/proto
@@ -1 +1 @@
-../../../common/proto/
\ No newline at end of file
+../../../ros2rag.common/proto/
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index edf79d12c6147eb8eb02d0d41e1ddb66e05ed98e..9235870b25a07e39bdaed474d79643bc80928795 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -6,3 +6,5 @@ include 'ros2rag.tests'
 include 'ros2rag.starter'
 include 'ros2rag.senderstub'
 include 'ros2rag.receiverstub'
+include 'ros2rag.goal'
+include 'ros2rag.common'