diff --git a/build.gradle b/build.gradle
index 88458d3cd6bd932cb2339a9f40b58ec80c43ae58..536b93716eedb5d5e36560238c1dc8fba96229f2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,14 @@
 buildscript {
-    repositories.jcenter()
+
+    repositories {
+        maven {
+            url "https://git-st.inf.tu-dresden.de/api/v4/projects/1106/packages/maven"
+        }
+        maven {
+            url 'https://git-st.inf.tu-dresden.de/api/v4/projects/1108/packages/maven'
+        }
+    }
+
     dependencies {
         classpath 'org.jastadd:jastaddgradle:1.13.3'
     }
@@ -13,16 +22,17 @@ plugins {
 
 apply plugin: 'jastadd'
 
-mainClassName = 'de.tudresden.inf.st.mrc.MinimalMain'
-
 repositories {
-    jcenter()
     maven {
-        name "gitlab-maven"
-        url "https://gitlab.example.com/api/v4/groups/jastadd/-/packages/maven"
+        url "https://git-st.inf.tu-dresden.de/api/v4/projects/1106/packages/maven"
+    }
+    maven {
+        url 'https://git-st.inf.tu-dresden.de/api/v4/projects/1108/packages/maven'
     }
 }
 
+mainClassName = 'de.tudresden.inf.st.mrc.MinimalMain'
+
 apply plugin: 'jastadd'
 
 configurations {
@@ -30,6 +40,11 @@ configurations {
     ragconnectClasspath
 }
 
+compileJava {
+    sourceCompatibility = '1.8'
+    targetCompatibility = '1.8'
+}
+
 run {
     standardInput = System.in
 }
@@ -40,10 +55,44 @@ idea.module.generatedSourceDirs += genSrc
 
 dependencies {
     implementation fileTree(include: ['dumpAst2uml.jar'], dir: 'libs')
+    ragconnectClasspath fileTree(include: ['ragconnect-0.3.2-alpha.jar'], dir: 'libs')
     implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
     implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.2'
     implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.2'
-    ragconnectClasspath group: 'de.tudresden.inf.st', name: 'ragconnect.base', version: '0.2.3'
+
+    compile 'org.ros.rosjava_core:rosjava:0.3.9'
+    implementation 'org.ros.rosjava_bootstrap:message_generation:0.3.3'
+
+ /*   implementation 'org.ros.rosjava_core:apache_xmlrpc_server:0.3.8'
+    implementation 'org.ros.rosjava_core:apache_xmlrpc_common:0.3.8'
+    implementation 'org.ros.rosjava_core:apache_xmlrpc_client:0.3.8'
+    implementation 'org.ros.rosjava_core:rosjava_helpers:0.3.8'*/
+
+    compile fileTree(include: ['std_msgs-0.5.11.jar'], dir: './libs')
+    compile fileTree(include: ['rosgraph_msgs-1.10.12.jar'], dir: './libs')
+
+ /*   // google guava
+    implementation("com.google.guava:guava:31.0.1-jre")
+
+    // https://mvnrepository.com/artifact/org.jboss.netty/netty
+    implementation group: 'org.jboss.netty', name: 'netty', version: '3.2.10.Final'
+
+    // https://mvnrepository.com/artifact/commons-codec/commons-codec
+    implementation group: 'commons-codec', name: 'commons-codec', version: '1.15'
+
+    // https://mvnrepository.com/artifact/commons-pool/commons-pool
+    implementation group: 'commons-pool', name: 'commons-pool', version: '1.6'
+
+    // https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient
+    implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1'
+
+    // https://mvnrepository.com/artifact/org.apache.ws.commons.util/ws-commons-util
+    implementation group: 'org.apache.ws.commons.util', name: 'ws-commons-util', version: '1.0.2'
+
+    // https://mvnrepository.com/artifact/dnsjava/dnsjava
+    implementation group: 'dnsjava', name: 'dnsjava', version: '2.1.1'
+*/
+ //   ragconnectClasspath group: 'de.tudresden.inf.st', name: 'ragconnect.base', version: '0.3.2-alpha'
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
 }
@@ -62,7 +111,8 @@ task ragConnect(type: JavaExec) {
             '--o=src/gen/jastadd',
             'src/main/jastadd/MinimalModel.relast',
             'src/main/jastadd/MinimalModel.connect',
-            '--rootNode=A'
+            '--rootNode=A',
+            '--protocols=ros'
     ])
 
 }
diff --git a/libs/apache_xmlrpc_client-0.3.6.jar b/libs/apache_xmlrpc_client-0.3.6.jar
new file mode 100644
index 0000000000000000000000000000000000000000..c9974bb5ba64a06af20f6e40a324ee1a556a492b
Binary files /dev/null and b/libs/apache_xmlrpc_client-0.3.6.jar differ
diff --git a/libs/apache_xmlrpc_common-0.3.6.jar b/libs/apache_xmlrpc_common-0.3.6.jar
new file mode 100644
index 0000000000000000000000000000000000000000..8a40996ab3b77809672aad92b77a1c17e4d7e8d9
Binary files /dev/null and b/libs/apache_xmlrpc_common-0.3.6.jar differ
diff --git a/libs/apache_xmlrpc_server-0.3.6.jar b/libs/apache_xmlrpc_server-0.3.6.jar
new file mode 100644
index 0000000000000000000000000000000000000000..1b95834b63c1ec7259b81de88c935126bdf6e110
Binary files /dev/null and b/libs/apache_xmlrpc_server-0.3.6.jar differ
diff --git a/libs/message_generation-0.3.3.jar b/libs/message_generation-0.3.3.jar
new file mode 100644
index 0000000000000000000000000000000000000000..d093f1c34a25191eb7fa8e3ee270d56759786b27
Binary files /dev/null and b/libs/message_generation-0.3.3.jar differ
diff --git a/libs/ragconnect-0.3.2-alpha.jar b/libs/ragconnect-0.3.2-alpha.jar
new file mode 100644
index 0000000000000000000000000000000000000000..65942f02bf8feec961518c16b61a16f2bd1e07e0
Binary files /dev/null and b/libs/ragconnect-0.3.2-alpha.jar differ
diff --git a/libs/rosgraph_msgs-1.10.12.jar b/libs/rosgraph_msgs-1.10.12.jar
new file mode 100644
index 0000000000000000000000000000000000000000..ea7ed16a55770077b4d494727875d40ca725e33b
Binary files /dev/null and b/libs/rosgraph_msgs-1.10.12.jar differ
diff --git a/libs/rosjava-0.3.7.jar b/libs/rosjava-0.3.7.jar
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/libs/rosjava_custom_srv-0.1.0.jar b/libs/rosjava_custom_srv-0.1.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..3e0f54bdf07d499aa248bdc50b9f617cb8a37035
Binary files /dev/null and b/libs/rosjava_custom_srv-0.1.0.jar differ
diff --git a/libs/std_msgs-0.5.11.jar b/libs/std_msgs-0.5.11.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f4bda8eda378e01d97a29456929286d14e04f73e
Binary files /dev/null and b/libs/std_msgs-0.5.11.jar differ
diff --git a/src/main/java/de/tudresden/inf/st/mrc/MinimalMain.java b/src/main/java/de/tudresden/inf/st/mrc/MinimalMain.java
index 937fe5fc4524427d2482b37cec01e0bf9eb636cb..23cb9c587d3b4026a7e3016375cb17187007cfef 100644
--- a/src/main/java/de/tudresden/inf/st/mrc/MinimalMain.java
+++ b/src/main/java/de/tudresden/inf/st/mrc/MinimalMain.java
@@ -2,9 +2,13 @@ package de.tudresden.inf.st.mrc;
 
 import de.tudresden.inf.st.mrc.ast.A;
 import de.tudresden.inf.st.mrc.ast.B;
+import de.tudresden.inf.st.mrc.ast.RosHandler;
+//import de.tudresden.inf.st.mrc.ast.JavaHandler;
 
 import java.io.IOException;
+import java.net.URI;
 import java.util.Scanner;
+import java.util.function.BiConsumer;
 
 /**
  * Minimal main.
@@ -12,7 +16,21 @@ import java.util.Scanner;
  * @author rschoene - Initial contribution
  */
 public class MinimalMain {
-  public static void main(String[] args) throws IOException {
+
+  /*public void addListener(String topic, BiConsumer<String, byte[]> callback){
+    System.out.println("Adding listener");
+
+    Subscriber<std_msgs.String> sub = null;
+    sub.addMessageListener(message -> callback.accept(topic, null));
+  }*/
+
+  public static void main(String[] args) throws IOException, InterruptedException {
+
+   // JavaHandler jh = JavaHandler.getInstance();
+    RosHandler rh = RosHandler.getInstance();
+
+  //  jh.registerCallback("/a/out", (String, bytes) -> { System.out.println("TEST CALLBACK 1");});
+
     A a = new A();
     // set some default value for input
     a.setInput("");
@@ -28,14 +46,36 @@ public class MinimalMain {
     // b2.OutputOnB -> a.Input
     b2.addDependencyB(a);
 
-    a.connectInput("mqtt://localhost/topic/for/input");
-    a.connectOutputOnA("mqtt://localhost/a/out", true);
-    b1.connectOutputOnB("mqtt://localhost/b1/out", true);
-    b2.connectOutputOnB("mqtt://localhost/b2/out", false);
+    a.connectInput("ros://topic/for/input");
+    a.connectOutputOnA("ros://a/out", true);
+    b1.connectOutputOnB("ros://b1/out", true);
+    b2.connectOutputOnB("ros://b2/out", true);
+
+    rh.newSubscriber(URI.create("ros://a/out"), (String, bytes) -> {
+      System.out.println("TEST CALLBACK 1");
+    });
+
+    /*a.connectInput("java://localhost/topic/for/input");
+    a.connectOutputOnA("java://localhost/a/out", true);
+    b1.connectOutputOnB("java://localhost/b1/out", true);
+    b2.connectOutputOnB("java://localhost/b2/out", true);
+
+
+    jh.registerCallback("/a/out", (String, bytes) -> { System.out.println("TEST CALLBACK 2");});
+
+    jh.push("/topic/for/input", " Hello World!".getBytes());
+
+    a.disconnectOutputOnA("java://localhost/a/out");
+
+*/
+
+    while (true) {
+      Thread.sleep(1000);
+      System.out.println("Input:" + a.getInput());
+    }
+   // System.out.println("[Enter] to exit");
 
-//    while (true) {}
-    System.out.println("[Enter] to exit");
-    Scanner scanner = new Scanner(System.in);
-    scanner.nextLine();
+   // Scanner scanner = new Scanner(System.in);
+   // scanner.nextLine();
   }
 }