diff --git a/ragconnect.base/src/main/jastadd/Intermediate.jadd b/ragconnect.base/src/main/jastadd/Intermediate.jadd
index a391130b5dd5991f1ceba4c0d2688a8bb17015a3..0bc8cc208035afa153d13752fb2db1a18bd7a366 100644
--- a/ragconnect.base/src/main/jastadd/Intermediate.jadd
+++ b/ragconnect.base/src/main/jastadd/Intermediate.jadd
@@ -11,6 +11,8 @@ aspect SharedMustache {
 
   syn boolean RagConnect.configExperimentalJastAdd329() = getConfiguration().getExperimentalJastAdd329();
 
+  syn String RagConnect.internalRagConnectPrefix() = "_ragconnect_";
+
   syn String RagConnect.rootNodeName() = getConfiguration().getRootNode().getName();
 
   // === EndpointDefinition ===
@@ -21,7 +23,7 @@ aspect MustacheDependencyDefinition {
   // === DependencyDefinition ===
   syn String DependencyDefinition.dependencyMethodName() = "add" + capitalize(getID());
 
-  syn String DependencyDefinition.internalRelationPrefix() = "_internal_" + getID();
+  syn String DependencyDefinition.internalRelationPrefix() = ragconnect().internalRagConnectPrefix() + getID();
 
   syn String DependencyDefinition.sourceParentTypeName() = getSource().containingTypeDecl().getName();
 
@@ -45,11 +47,11 @@ aspect MustacheHandler {
   }
 
   // === Handler ===
-  syn String Handler.attributeName() = "_" + getUniqueName() + "Handler";
+  syn String Handler.attributeName() = ragconnect().internalRagConnectPrefix() + getUniqueName() + "Handler";
 
   syn String Handler.constructionSnippet() = "new " + getClassName() + "(\"Handler for " + ragconnect().rootNodeName() + ".\" + this.hashCode())";
 
-  syn String Handler.fieldName() = "_" + getUniqueName() + "Handler";
+  syn String Handler.fieldName() = ragconnect().internalRagConnectPrefix() + getUniqueName() + "Handler";
 
   syn String Handler.setupWaitUntilReadyMethodName() = "ragconnectSetup" + capitalize(getUniqueName()) + "WaitUntilReady";
 }
@@ -126,7 +128,7 @@ aspect MustacheMappingApplicationAndDefinition {
   }
 
   syn String MInnerMappingDefinition.methodName() = getMappingDefinition().methodName();
-  syn String MappingDefinition.methodName() = "_apply_" + getID();
+  syn String MappingDefinition.methodName() = ragconnect().internalRagConnectPrefix() + "_apply_" + getID();
 
   syn String MInnerMappingDefinition.outputVarName() = "result" + methodName();  // we do not need "_" in between here, because methodName begins with one
 
@@ -311,11 +313,11 @@ aspect MustacheReceiveDefinition {
 
   syn boolean EndpointDefinition.hasTypeEndpointTarget() = getEndpointTarget().isTypeEndpointTarget();
 
-  syn String EndpointDefinition.idTokenName() = "InternalRagconnectTopicInList";
+  syn String EndpointDefinition.idTokenName() = ragconnect().internalRagConnectPrefix() + "TopicInList";
 
-  syn String EndpointDefinition.internalConnectMethodName() = "_internal_" + connectMethodName();
+  syn String EndpointDefinition.internalConnectMethodName() = ragconnect().internalRagConnectPrefix() + "_internal_" + connectMethodName();
 
-  syn String EndpointDefinition.resolveInListMethodName() = "_ragconnect_resolve" + entityName() + "InList";
+  syn String EndpointDefinition.resolveInListMethodName() = ragconnect().internalRagConnectPrefix() + "_resolve" + entityName() + "InList";
 
   syn boolean EndpointDefinition.typeIsList() = getEndpointTarget().typeIsList();
 
@@ -347,8 +349,8 @@ aspect MustacheSendDefinition {
 
   // === attributes needed for computing above ones ===
   syn String EndpointTarget.senderName();
-  eq TokenEndpointTarget.senderName() = "_sender_" + getToken().getName();
-  eq TypeEndpointTarget.senderName() = "_sender_" + getType().getName();
+  eq TokenEndpointTarget.senderName() = ragconnect().internalRagConnectPrefix() + "_sender_" + getToken().getName();
+  eq TypeEndpointTarget.senderName() = ragconnect().internalRagConnectPrefix() + "_sender_" + getType().getName();
   eq ContextFreeTypeEndpointTarget.senderName() = null;
 
   syn String MEndpointDefinition.updateMethodName();
@@ -357,14 +359,14 @@ aspect MustacheSendDefinition {
   eq MTokenReceiveDefinition.updateMethodName() = null;
   eq MTokenReceiveDefinition.writeMethodName() = null;
 
-  eq MTokenSendDefinition.updateMethodName() = "_update_" + tokenName();
-  eq MTokenSendDefinition.writeMethodName() = "_writeLastValue_" + tokenName();
+  eq MTokenSendDefinition.updateMethodName() = ragconnect().internalRagConnectPrefix() + "_update_" + tokenName();
+  eq MTokenSendDefinition.writeMethodName() = ragconnect().internalRagConnectPrefix() + "_writeLastValue_" + tokenName();
 
   eq MTypeReceiveDefinition.updateMethodName() = null;
   eq MTypeReceiveDefinition.writeMethodName() = null;
 
-  eq MTypeSendDefinition.updateMethodName() = "_update_" + typeName();
-  eq MTypeSendDefinition.writeMethodName() = "_writeLastValue_" + typeName();
+  eq MTypeSendDefinition.updateMethodName() = ragconnect().internalRagConnectPrefix() + "_update_" + typeName();
+  eq MTypeSendDefinition.writeMethodName() = ragconnect().internalRagConnectPrefix() + "_writeLastValue_" + typeName();
 
   eq MContextFreeTypeReceiveDefinition.updateMethodName() = null;
   eq MContextFreeTypeReceiveDefinition.writeMethodName() = null;
@@ -381,7 +383,7 @@ aspect MustacheSendDefinition {
 
 aspect MustacheTokenComponent {
   // === TokenComponent ===
-  syn String TokenComponent.internalName() = needProxyToken() ? "_internal_" + getName() : getName();
+  syn String TokenComponent.internalName() = needProxyToken() ? ragconnect().internalRagConnectPrefix() + getName() : getName();
 
   syn String TokenComponent.javaType() = effectiveJavaTypeUse().prettyPrint();
 
diff --git a/ragconnect.base/src/main/jastadd/IntermediateToYAML.jrag b/ragconnect.base/src/main/jastadd/IntermediateToYAML.jrag
index 67ccf2738e32f3f91f2fbac3eec8349d348228d6..867d3beedd3cef611ec6721a7365bcda365c3635 100644
--- a/ragconnect.base/src/main/jastadd/IntermediateToYAML.jrag
+++ b/ragconnect.base/src/main/jastadd/IntermediateToYAML.jrag
@@ -13,6 +13,7 @@ aspect IntermediateToYAML {
     root.put("configIncrementalOptionActive" , configIncrementalOptionActive());
     root.put("configLoggingEnabledForIncremental" , configLoggingEnabledForIncremental());
     root.put("configExperimentalJastAdd329" , configExperimentalJastAdd329());
+    root.put("internalRagConnectPrefix" , internalRagConnectPrefix());
     root.put("rootNodeName" , rootNodeName());
 
     // handler
diff --git a/ragconnect.base/src/main/resources/ragconnect.mustache b/ragconnect.base/src/main/resources/ragconnect.mustache
index d39fe4a8686b7a6950c1bfb7128d0960f8fa8349..6917f46e42437b58cdcd168c31c0a06c647e99f9 100644
--- a/ragconnect.base/src/main/resources/ragconnect.mustache
+++ b/ragconnect.base/src/main/resources/ragconnect.mustache
@@ -162,13 +162,13 @@ aspect RagConnectObserver {
     }
   }
 
-  private static RagConnectObserver ASTNode._ragConnectObserverInstance;
-  RagConnectObserver ASTNode._ragConnectObserver() {
-    if (_ragConnectObserverInstance == null) {
+  private static RagConnectObserver ASTNode.{{internalRagConnectPrefix}}ObserverInstance;
+  RagConnectObserver ASTNode.{{internalRagConnectPrefix}}Observer() {
+    if ({{internalRagConnectPrefix}}ObserverInstance == null) {
       // does not matter, which node is used to create the observer as ASTState/tracing is also static
-      _ragConnectObserverInstance = new RagConnectObserver(this);
+    {{internalRagConnectPrefix}}ObserverInstance = new RagConnectObserver(this);
     }
-    return _ragConnectObserverInstance;
+    return {{internalRagConnectPrefix}}ObserverInstance;
   }
 }
 {{/configIncrementalOptionActive}}
diff --git a/ragconnect.base/src/main/resources/sendDefinition.mustache b/ragconnect.base/src/main/resources/sendDefinition.mustache
index 3c29e922faf0bc1de3838468886cbc905d97b2dc..9b80bcdef5966f011c29f1b891b17337e33ff91d 100644
--- a/ragconnect.base/src/main/resources/sendDefinition.mustache
+++ b/ragconnect.base/src/main/resources/sendDefinition.mustache
@@ -41,7 +41,7 @@ public boolean {{parentTypeName}}.{{connectMethodName}}(String {{connectParamete
   if (success) {
     connectTokenMap.add(this, false, connectToken);
     {{#configIncrementalOptionActive}}
-    _ragConnectObserver().add(connectToken, this, "{{getterMethodName}}", () -> {
+    {{internalRagConnectPrefix}}Observer().add(connectToken, this, "{{getterMethodName}}", () -> {
       if (this.{{updateMethodName}}()) {
         this.{{writeMethodName}}();
       }
@@ -59,7 +59,7 @@ public boolean {{parentTypeName}}.{{disconnectMethodName}}(String {{connectParam
     return false;
   }
   {{#configIncrementalOptionActive}}
-  connectTokens.forEach(token -> _ragConnectObserver().remove(token));
+  connectTokens.forEach(token -> {{internalRagConnectPrefix}}Observer().remove(token));
   {{/configIncrementalOptionActive}}
   RagConnectDisconnectHandlerMethod disconnectingMethod;
   switch (scheme) {
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TestUtils.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TestUtils.java
index 984a5b06e2bb177ae13605c58fa9a95462dd74a8..55e4420e34964d72f484768df0d1ee9a602638c5 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TestUtils.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TestUtils.java
@@ -167,56 +167,56 @@ public class TestUtils {
   @SuppressWarnings({"unused", "rawtypes"})
   public static class DefaultMappings {
     static class ReadNode extends defaultOnlyRead.ast.ASTNode {
-      public static boolean _apply__DefaultBytesToBooleanMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToBooleanMapping(input);
+      public static boolean DefaultBytesToBooleanMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToBooleanMapping(input);
       }
-      public static int _apply__DefaultBytesToIntMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToIntMapping(input);
+      public static int DefaultBytesToIntMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToIntMapping(input);
       }
-      public static short _apply__DefaultBytesToShortMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToShortMapping(input);
+      public static short DefaultBytesToShortMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToShortMapping(input);
       }
-      public static long _apply__DefaultBytesToLongMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToLongMapping(input);
+      public static long DefaultBytesToLongMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToLongMapping(input);
       }
-      public static float _apply__DefaultBytesToFloatMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToFloatMapping(input);
+      public static float DefaultBytesToFloatMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToFloatMapping(input);
       }
-      public static double _apply__DefaultBytesToDoubleMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToDoubleMapping(input);
+      public static double DefaultBytesToDoubleMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToDoubleMapping(input);
       }
-      public static char _apply__DefaultBytesToCharMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToCharMapping(input);
+      public static char DefaultBytesToCharMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToCharMapping(input);
       }
-      public static String _apply__DefaultBytesToStringMapping(byte[] input) throws Exception {
-        return defaultOnlyRead.ast.ASTNode._apply__DefaultBytesToStringMapping(input);
+      public static String DefaultBytesToStringMapping(byte[] input) throws Exception {
+        return defaultOnlyRead.ast.ASTNode._ragconnect__apply__DefaultBytesToStringMapping(input);
       }
     }
 
     static class WriteNode extends defaultOnlyWrite.ast.ASTNode {
-      public static byte[] _apply__DefaultBooleanToBytesMapping(boolean input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultBooleanToBytesMapping(input);
+      public static byte[] DefaultBooleanToBytesMapping(boolean input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultBooleanToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultIntToBytesMapping(int input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultIntToBytesMapping(input);
+      public static byte[] DefaultIntToBytesMapping(int input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultIntToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultShortToBytesMapping(short input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultShortToBytesMapping(input);
+      public static byte[] DefaultShortToBytesMapping(short input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultShortToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultLongToBytesMapping(long input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultLongToBytesMapping(input);
+      public static byte[] DefaultLongToBytesMapping(long input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultLongToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultFloatToBytesMapping(float input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultFloatToBytesMapping(input);
+      public static byte[] DefaultFloatToBytesMapping(float input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultFloatToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultDoubleToBytesMapping(double input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultDoubleToBytesMapping(input);
+      public static byte[] DefaultDoubleToBytesMapping(double input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultDoubleToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultCharToBytesMapping(char input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultCharToBytesMapping(input);
+      public static byte[] DefaultCharToBytesMapping(char input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultCharToBytesMapping(input);
       }
-      public static byte[] _apply__DefaultStringToBytesMapping(String input) throws Exception {
-        return defaultOnlyWrite.ast.ASTNode._apply__DefaultStringToBytesMapping(input);
+      public static byte[] DefaultStringToBytesMapping(String input) throws Exception {
+        return defaultOnlyWrite.ast.ASTNode._ragconnect__apply__DefaultStringToBytesMapping(input);
       }
     }
     @FunctionalInterface
@@ -226,7 +226,7 @@ public class TestUtils {
 
     public static boolean BytesToBool(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToBooleanMapping(input);
+        return ReadNode.DefaultBytesToBooleanMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return false;
@@ -234,7 +234,7 @@ public class TestUtils {
     }
     public static int BytesToInt(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToIntMapping(input);
+        return ReadNode.DefaultBytesToIntMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return 0;
@@ -242,7 +242,7 @@ public class TestUtils {
     }
     public static short BytesToShort(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToShortMapping(input);
+        return ReadNode.DefaultBytesToShortMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return 0;
@@ -250,7 +250,7 @@ public class TestUtils {
     }
     public static long BytesToLong(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToLongMapping(input);
+        return ReadNode.DefaultBytesToLongMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return 0;
@@ -258,7 +258,7 @@ public class TestUtils {
     }
     public static float BytesToFloat(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToFloatMapping(input);
+        return ReadNode.DefaultBytesToFloatMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return 0;
@@ -266,7 +266,7 @@ public class TestUtils {
     }
     public static double BytesToDouble(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToDoubleMapping(input);
+        return ReadNode.DefaultBytesToDoubleMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return 0;
@@ -274,7 +274,7 @@ public class TestUtils {
     }
     public static char BytesToChar(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToCharMapping(input);
+        return ReadNode.DefaultBytesToCharMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return 0;
@@ -282,7 +282,7 @@ public class TestUtils {
     }
     public static String BytesToString(byte[] input) {
       try {
-        return ReadNode._apply__DefaultBytesToStringMapping(input);
+        return ReadNode.DefaultBytesToStringMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -290,7 +290,7 @@ public class TestUtils {
     }
     public static byte[] BoolToBytes(boolean input) {
       try {
-        return WriteNode._apply__DefaultBooleanToBytesMapping(input);
+        return WriteNode.DefaultBooleanToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -298,7 +298,7 @@ public class TestUtils {
     }
     public static byte[] IntToBytes(int input) {
       try {
-        return WriteNode._apply__DefaultIntToBytesMapping(input);
+        return WriteNode.DefaultIntToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -306,7 +306,7 @@ public class TestUtils {
     }
     public static byte[] ShortToBytes(short input) {
       try {
-        return WriteNode._apply__DefaultShortToBytesMapping(input);
+        return WriteNode.DefaultShortToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -314,7 +314,7 @@ public class TestUtils {
     }
     public static byte[] LongToBytes(long input) {
       try {
-        return WriteNode._apply__DefaultLongToBytesMapping(input);
+        return WriteNode.DefaultLongToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -322,7 +322,7 @@ public class TestUtils {
     }
     public static byte[] FloatToBytes(float input) {
       try {
-        return WriteNode._apply__DefaultFloatToBytesMapping(input);
+        return WriteNode.DefaultFloatToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -330,7 +330,7 @@ public class TestUtils {
     }
     public static byte[] DoubleToBytes(double input) {
       try {
-        return WriteNode._apply__DefaultDoubleToBytesMapping(input);
+        return WriteNode.DefaultDoubleToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -338,7 +338,7 @@ public class TestUtils {
     }
     public static byte[] CharToBytes(char input) {
       try {
-        return WriteNode._apply__DefaultCharToBytesMapping(input);
+        return WriteNode.DefaultCharToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;
@@ -346,7 +346,7 @@ public class TestUtils {
     }
     public static byte[] StringToBytes(String input) {
       try {
-        return WriteNode._apply__DefaultStringToBytesMapping(input);
+        return WriteNode.DefaultStringToBytesMapping(input);
       } catch (Exception e) {
         e.printStackTrace();
         return null;