diff --git a/new-version.sh b/new-version.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0f4eb43077044d55d2b056ccecb1fce45a95369b
--- /dev/null
+++ b/new-version.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+echo "Old version: '$(./gradlew -q :ragconnect.base:run --args=--version)'"
+if [ -z "$1" ]; then
+	echo "Missing parameter for version"
+	exit 1
+fi
+./gradlew newVersion -Pvalue=$1
diff --git a/ragconnect.base/build.gradle b/ragconnect.base/build.gradle
index f3318785822b41dae4f7a221ba5bebde6d1cf342..953e9c5a0a74d2fac22831166ba9b9b52381ab96 100644
--- a/ragconnect.base/build.gradle
+++ b/ragconnect.base/build.gradle
@@ -61,8 +61,10 @@ jar {
     }
 
     from {
-        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
+        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
     }
+
+    archiveBaseName = 'ragconnect'
 }
 
 task relast(type: JavaExec) {
diff --git a/ragconnect.base/src/main/resources/MqttHandler.jadd b/ragconnect.base/src/main/resources/MqttHandler.jadd
index 6f40612520cfb97151600dff53c8e0d384ab441e..d9f99fba5be35110b645fe976ae594853d66d213 100644
--- a/ragconnect.base/src/main/resources/MqttHandler.jadd
+++ b/ragconnect.base/src/main/resources/MqttHandler.jadd
@@ -53,7 +53,7 @@ public class MqttServerHandler {
     resolveHandler(uri).publish(extractTopic(uri), bytes, qos, retain);
   }
 
-  private String extractTopic(java.net.URI uri) {
+  public static String extractTopic(java.net.URI uri) {
     String path = uri.getPath();
     if (path.charAt(0) == '/') {
       path = path.substring(1);
diff --git a/ragconnect.base/src/main/resources/ragConnectVersion.properties b/ragconnect.base/src/main/resources/ragConnectVersion.properties
index 8ec441610d66cd3f793075302676eb132eea35c3..768893e5c448a618f5fb93070a694b627a2ad362 100644
--- a/ragconnect.base/src/main/resources/ragConnectVersion.properties
+++ b/ragconnect.base/src/main/resources/ragConnectVersion.properties
@@ -1,2 +1,2 @@
-#Wed Jul 29 16:29:05 CEST 2020
-version=0.2.0
+#Fri Aug 14 13:28:32 CEST 2020
+version=0.2.1
diff --git a/ragconnect.base/src/main/resources/sendDefinition.mustache b/ragconnect.base/src/main/resources/sendDefinition.mustache
index fac4ecd37967b8047c9101b58fab273527979ab2..d6601aaeac7686a06dc59b62f0f0b56aa9642bc7 100644
--- a/ragconnect.base/src/main/resources/sendDefinition.mustache
+++ b/ragconnect.base/src/main/resources/sendDefinition.mustache
@@ -1,21 +1,18 @@
 private Runnable {{parentTypeName}}.{{sender}} = null;
 private byte[] {{parentTypeName}}.{{lastValue}} = null;
 
-public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterName}}, boolean writeCurrentValue) {
+public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterName}}, boolean writeCurrentValue) throws java.io.IOException {
   {{>handleUri}}
   switch (scheme) {
   {{#usesMqtt}}
     case "mqtt":
-      // MqttHandler handler = {{mqttHandlerAttribute}}().resolveHandler(uri);{{!optimize later}}
+      final MqttHandler handler = {{mqttHandlerAttribute}}().resolveHandler(uri);
+      final String topic = {{mqttHandlerAttribute}}().extractTopic(uri);
       {{sender}} = () -> {
         {{#loggingEnabledForWrites}}
         System.out.println("[Send] {{tokenName}} = " + get{{tokenName}}() + " -> " + {{connectParameterName}});
         {{/loggingEnabledForWrites}}
-        try {
-          {{mqttHandlerAttribute}}().publish(uri, {{lastValue}});
-        } catch (java.io.IOException e) {
-          e.printStackTrace();
-        }
+        handler.publish(topic, {{lastValue}});
       };
       {{updateMethod}}();
       if (writeCurrentValue) {
diff --git a/ragconnect.base/src/main/resources/tokenComponent.mustache b/ragconnect.base/src/main/resources/tokenComponent.mustache
index e78efb96b846bd7aa814723472032299a70c7de3..ec91e68da6493d1c8de97a497e4b1df08e8e6af0 100644
--- a/ragconnect.base/src/main/resources/tokenComponent.mustache
+++ b/ragconnect.base/src/main/resources/tokenComponent.mustache
@@ -3,11 +3,9 @@ public {{parentTypeName}} {{parentTypeName}}.set{{name}}({{javaType}} value) {
   {{#DependencyDefinitions}}
   for ({{targetParentTypeName}} target : get{{internalRelationPrefix}}TargetList()) {
     {{#targetEndpointDefinition}}
-    {{!#isPush}}
     if (target.{{updateMethod}}()) {
       target.{{writeMethod}}();
     }
-    {{!/isPush}}
     {{/targetEndpointDefinition}}
   }
   {{/DependencyDefinitions}}