diff --git a/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.cpp b/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.cpp
index 383de616a6001cd7358a2fd5604c44f7e669ecc6..1e94a395814376eb08b20e45f5d043f21fa6dbb4 100644
--- a/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.cpp
@@ -1,53 +1,64 @@
 #include "RobotUnitComponentPlugin.h"
 
-namespace armarx
+namespace armarx::plugins
 {
-    namespace plugins
+    void RobotUnitComponentPlugin::preOnInitComponent()
     {
-
-        void RobotUnitComponentPlugin::preOnInitComponent()
-        {
-            parent<Component>().usingProxyFromProperty(PROPERTY_NAME);
-        }
-
-        void RobotUnitComponentPlugin::preOnConnectComponent()
+        if (_robotUnitName.empty())
         {
-            parent<Component>().getProxyFromProperty(_robotUnit, PROPERTY_NAME);
+            parent<Component>().getProperty(_robotUnitName, PROPERTY_NAME);
         }
+        parent<Component>().usingProxy(_robotUnitName);
+    }
 
-        void RobotUnitComponentPlugin::postCreatePropertyDefinitions(armarx::PropertyDefinitionsPtr& properties)
-        {
-            if (!properties->hasDefinition(PROPERTY_NAME))
-            {
-                properties->defineRequiredProperty<std::string>(
-                    PROPERTY_NAME,
-                    "Name of the RobotUnit");
-            }
-        }
+    void RobotUnitComponentPlugin::preOnConnectComponent()
+    {
+        parent<Component>().getProxy(_robotUnit, _robotUnitName);
+    }
 
-        RobotUnitInterfacePrx RobotUnitComponentPlugin::getRobotUnit()
+    void RobotUnitComponentPlugin::postCreatePropertyDefinitions(armarx::PropertyDefinitionsPtr& properties)
+    {
+        if (!properties->hasDefinition(PROPERTY_NAME))
         {
-            return _robotUnit;
+            properties->defineRequiredProperty<std::string>(
+                PROPERTY_NAME,
+                "Name of the RobotUnit");
         }
+    }
 
+    RobotUnitInterfacePrx RobotUnitComponentPlugin::getRobotUnit() const
+    {
+        return _robotUnit;
+    }
 
+    void RobotUnitComponentPlugin::setRobotUnitName(const std::string& name)
+    {
+        ARMARX_CHECK_NOT_EMPTY(name);
+        ARMARX_CHECK_EMPTY(_robotUnitName);
+        _robotUnitName = name;
+    }
+    const std::string& RobotUnitComponentPlugin::getRobotUnitName() const
+    {
+        return _robotUnitName;
     }
 }
 
 namespace armarx
 {
-
     RobotUnitComponentPluginUser::RobotUnitComponentPluginUser()
     {
         addPlugin(plugin);
     }
 
-    RobotUnitInterfacePrx RobotUnitComponentPluginUser::getRobotUnit()
+    RobotUnitInterfacePrx RobotUnitComponentPluginUser::getRobotUnit() const
     {
         return plugin->getRobotUnit();
     }
 
-
+    plugins::RobotUnitComponentPlugin& RobotUnitComponentPluginUser::getRobotUnitComponentPlugin()
+    {
+        return *plugin;
+    }
 }
 
 
diff --git a/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h b/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h
index 4dc53dcb9fff70332663f1dd4a0211f3fdfd916d..b3cbf9a3b1e43d262370fc3b6082d07612a9c7cc 100644
--- a/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h
+++ b/source/RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h
@@ -20,11 +20,14 @@ namespace armarx
 
             void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
 
-            RobotUnitInterfacePrx getRobotUnit();
+            RobotUnitInterfacePrx getRobotUnit() const;
 
+            void setRobotUnitName(const std::string& name);
+            const std::string& getRobotUnitName() const;
         private:
             static constexpr const char* PROPERTY_NAME = "RobotUnitName";
             RobotUnitInterfacePrx _robotUnit;
+            std::string           _robotUnitName;
         };
 
     }
@@ -39,8 +42,8 @@ namespace armarx
     {
     public:
         RobotUnitComponentPluginUser();
-        RobotUnitInterfacePrx getRobotUnit();
-
+        RobotUnitInterfacePrx getRobotUnit() const;
+        plugins::RobotUnitComponentPlugin& getRobotUnitComponentPlugin();
     private:
         armarx::plugins::RobotUnitComponentPlugin* plugin = nullptr;
     };