diff --git a/scenarios/AronComponentConfigExample/config/AronComponentConfigExample.cfg b/scenarios/AronComponentConfigExample/config/AronComponentConfigExample.cfg
index dcf2233099e0acef6a620567979cc71e1da2cc29..c5122a357453ce2b9cc050e4a8a5a862534e4002 100644
--- a/scenarios/AronComponentConfigExample/config/AronComponentConfigExample.cfg
+++ b/scenarios/AronComponentConfigExample/config/AronComponentConfigExample.cfg
@@ -60,152 +60,200 @@
 # ArmarX.ComponentConfigTest.RemoteGuiName = RemoteGuiProvider
 
 
-# ArmarX.ComponentConfigTest.boolMember:  
+# ArmarX.ComponentConfigTest.TestConfig.boolMember:  
 #  Attributes:
 #  - Default:            true
 #  - Case sensitivity:   yes
 #  - Required:           no
 #  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.ComponentConfigTest.boolMember = true
+# ArmarX.ComponentConfigTest.TestConfig.boolMember = true
 
 
-# ArmarX.ComponentConfigTest.floatMember:  
+# ArmarX.ComponentConfigTest.TestConfig.floatMember:  
 #  Attributes:
 #  - Default:            100
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.floatMember = 100
+# ArmarX.ComponentConfigTest.TestConfig.floatMember = 100
 
 
-# ArmarX.ComponentConfigTest.intMember:  
+# ArmarX.ComponentConfigTest.TestConfig.intMember:  
 #  Attributes:
 #  - Default:            1000
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.intMember = 1000
+# ArmarX.ComponentConfigTest.TestConfig.intMember = 1000
 
 
-# ArmarX.ComponentConfigTest.stringMember:  
+# ArmarX.ComponentConfigTest.TestConfig.orientation.header.agent:  
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   yes
+#  - Required:           no
+# ArmarX.ComponentConfigTest.TestConfig.orientation.header.agent = ""
+
+
+# ArmarX.ComponentConfigTest.TestConfig.orientation.header.frame:  
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   yes
+#  - Required:           no
+# ArmarX.ComponentConfigTest.TestConfig.orientation.header.frame = ""
+
+
+# ArmarX.ComponentConfigTest.TestConfig.pose.header.agent:  
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   yes
+#  - Required:           no
+# ArmarX.ComponentConfigTest.TestConfig.pose.header.agent = ""
+
+
+# ArmarX.ComponentConfigTest.TestConfig.pose.header.frame:  
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   yes
+#  - Required:           no
+# ArmarX.ComponentConfigTest.TestConfig.pose.header.frame = ""
+
+
+# ArmarX.ComponentConfigTest.TestConfig.position.header.agent:  
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   yes
+#  - Required:           no
+# ArmarX.ComponentConfigTest.TestConfig.position.header.agent = ""
+
+
+# ArmarX.ComponentConfigTest.TestConfig.position.header.frame:  
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   yes
+#  - Required:           no
+# ArmarX.ComponentConfigTest.TestConfig.position.header.frame = ""
+
+
+# ArmarX.ComponentConfigTest.TestConfig.stringMember:  
 #  Attributes:
 #  - Default:            initial
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.stringMember = initial
+# ArmarX.ComponentConfigTest.TestConfig.stringMember = initial
 
 
-# ArmarX.ComponentConfigTest.subMember.boolMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.boolMember:  
 #  Attributes:
 #  - Default:            false
 #  - Case sensitivity:   yes
 #  - Required:           no
 #  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.ComponentConfigTest.subMember.boolMember = false
+# ArmarX.ComponentConfigTest.TestConfig.subMember.boolMember = false
 
 
-# ArmarX.ComponentConfigTest.subMember.doubleMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.doubleMember:  
 #  Attributes:
 #  - Default:            0
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.doubleMember = 0
+# ArmarX.ComponentConfigTest.TestConfig.subMember.doubleMember = 0
 
 
-# ArmarX.ComponentConfigTest.subMember.floatMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.floatMember:  
 #  Attributes:
 #  - Default:            0
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.floatMember = 0
+# ArmarX.ComponentConfigTest.TestConfig.subMember.floatMember = 0
 
 
-# ArmarX.ComponentConfigTest.subMember.intMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.intMember:  
 #  Attributes:
 #  - Default:            0
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.intMember = 0
+# ArmarX.ComponentConfigTest.TestConfig.subMember.intMember = 0
 
 
-# ArmarX.ComponentConfigTest.subMember.stringMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.stringMember:  
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.stringMember = ""
+# ArmarX.ComponentConfigTest.TestConfig.subMember.stringMember = ""
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.boolMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.boolMember:  
 #  Attributes:
 #  - Default:            false
 #  - Case sensitivity:   yes
 #  - Required:           no
 #  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.ComponentConfigTest.subMember.subsubMember.boolMember = false
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.boolMember = false
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.enumMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.enumMember:  
 #  Attributes:
 #  - Default:            1
 #  - Case sensitivity:   yes
 #  - Required:           no
 #  - Possible values: {Bar, Baz, Foo, Qux}
-# ArmarX.ComponentConfigTest.subMember.subsubMember.enumMember = 1
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.enumMember = 1
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.floatMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.floatMember:  
 #  Attributes:
 #  - Default:            0
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.subsubMember.floatMember = 0
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.floatMember = 0
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.intDictMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.intDictMember:  
 #  Attributes:
 #  - Default:            int1:1,int2:2
 #  - Case sensitivity:   yes
 #  - Required:           no
-ArmarX.ComponentConfigTest.subMember.subsubMember.intDictMember = int1:1,int2:2,int3:3,int5:4
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.intDictMember = int1:1,int2:2
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.intListMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.intListMember:  
 #  Attributes:
 #  - Default:            1, 2, 3, 4, 5, 6
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.subsubMember.intListMember = 1, 2, 3, 4, 5, 6
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.intListMember = 1, 2, 3, 4, 5, 6
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.intMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.intMember:  
 #  Attributes:
 #  - Default:            0
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.subsubMember.intMember = 0
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.intMember = 0
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.stringDictMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.stringDictMember:  
 #  Attributes:
 #  - Default:            string1:blub,string2:duh
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.subsubMember.stringDictMember = string1:blub,string2:duh
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.stringDictMember = string1:blub,string2:duh
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.stringListMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.stringListMember:  
 #  Attributes:
 #  - Default:            a, b, c, d, e
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.subsubMember.stringListMember = a, b, c, d, e
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.stringListMember = a, b, c, d, e
 
 
-# ArmarX.ComponentConfigTest.subMember.subsubMember.stringMember:  
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.stringMember:  
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   yes
 #  - Required:           no
-# ArmarX.ComponentConfigTest.subMember.subsubMember.stringMember = ""
+# ArmarX.ComponentConfigTest.TestConfig.subMember.subsubMember.stringMember = ""
 
 
 # ArmarX.Config:  Comma-separated list of configuration files 
diff --git a/source/RobotAPI/libraries/aron_component_config/ComponentPlugin.h b/source/RobotAPI/libraries/aron_component_config/ComponentPlugin.h
index 288462223d51f039e7b38316c0e24a6f2037801f..08e496d77a9d28f09ade6599f692a89ec06cdbc4 100644
--- a/source/RobotAPI/libraries/aron_component_config/ComponentPlugin.h
+++ b/source/RobotAPI/libraries/aron_component_config/ComponentPlugin.h
@@ -50,7 +50,7 @@ namespace armarx::plugins
         {
             ARMARX_TRACE;
             armarx::aron::component_config::PropertyDefinitionGetterVisitor vis(
-                parent<armarx::PropertyUser>());
+                parent<armarx::PropertyUser>(), prefix());
             auto data = std::static_pointer_cast<armarx::aron::data::Variant>(
                 config_.getUpToDateReadBuffer().toAron());
             auto type = config_.getUpToDateReadBuffer().ToAronType();
@@ -65,7 +65,7 @@ namespace armarx::plugins
         postCreatePropertyDefinitions(armarx::PropertyDefinitionsPtr& properties) override
         {
             ARMARX_TRACE;
-            armarx::aron::component_config::PropertyDefinitionSetterVisitor vis(properties);
+            armarx::aron::component_config::PropertyDefinitionSetterVisitor vis(properties, prefix());
             const auto& config = config_.getUpToDateReadBuffer();
             armarx::aron::data::visitRecursive(vis, config.toAron(), config.ToAronType());
             ComponentPlugin::postCreatePropertyDefinitions(properties);
diff --git a/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp b/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp
index ee7d67c73021d5f72b5e3e266d24938b092fea0e..03b4c0f270a1b552034022b4fed16b341085be0f 100644
--- a/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp
+++ b/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp
@@ -157,8 +157,8 @@ namespace armarx::aron::component_config
     }
 
     PropertyDefinitionGetterVisitor::PropertyDefinitionGetterVisitor(
-        const armarx::PropertyUser& defs) :
-        property_user_(std::experimental::make_observer(&defs)), in_list_(false)
+        const armarx::PropertyUser& defs, const std::string& global_namespace):
+        property_user_(std::experimental::make_observer(&defs)), global_namespace_(global_namespace), in_list_(false)
     {
     }
 
@@ -246,16 +246,16 @@ namespace armarx::aron::component_config
                                                         const std::shared_ptr<type::Variant>& j)
     {
         INPUT_GUARD(i);
-        auto t = type::Object::DynamicCastAndCheck(j);
         if (global_namespace_.empty())
         {
+            auto t = type::Object::DynamicCastAndCheck(j);
             global_namespace_ = t->getObjectNameWithoutNamespace() + ".";
         }
     }
 
     PropertyDefinitionSetterVisitor::PropertyDefinitionSetterVisitor(
-        const PropertyDefinitionsPtr& defs) :
-        property_definitions_(std::experimental::make_observer(defs.get()))
+        const PropertyDefinitionsPtr& defs, const std::string& global_namespace) :
+        property_definitions_(std::experimental::make_observer(defs.get())), global_namespace_(global_namespace)
     {
     }
 
diff --git a/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.h b/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.h
index 3d48904146e5e7e5d01b90015df70d40db3a7b98..a9c1d5823bd8589acaea27b4f27928b4668ef853 100644
--- a/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.h
+++ b/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.h
@@ -34,7 +34,7 @@ namespace armarx::aron::component_config
     class PropertyDefinitionSetterVisitor : public aron::data::RecursiveConstTypedVariantVisitor
     {
     public:
-        explicit PropertyDefinitionSetterVisitor(const armarx::PropertyDefinitionsPtr& defs);
+        explicit PropertyDefinitionSetterVisitor(const armarx::PropertyDefinitionsPtr& defs, const std::string& global_namespace = "");
 
         void visitAronVariant(const data::IntPtr&, const type::IntEnumPtr&) override;
 
@@ -61,7 +61,7 @@ namespace armarx::aron::component_config
 
     private:
         std::experimental::observer_ptr<PropertyDefinitionContainer> property_definitions_;
-        std::string global_namespace_{""};
+        std::string global_namespace_;
         std::atomic<bool> in_list_{false};
     };
 
@@ -69,7 +69,7 @@ namespace armarx::aron::component_config
         public aron::data::RecursiveTypedVisitor<data::VariantPtr, const type::VariantPtr>
     {
     public:
-        explicit PropertyDefinitionGetterVisitor(const armarx::PropertyUser& defs);
+        explicit PropertyDefinitionGetterVisitor(const armarx::PropertyUser& defs, const std::string& global_namespace = "");
 
         type::Descriptor getDescriptor(DataInput& o, TypeInput& t) override;
 
@@ -109,7 +109,7 @@ namespace armarx::aron::component_config
 
     private:
         std::experimental::observer_ptr<const armarx::PropertyUser> property_user_;
-        std::string global_namespace_{""};
+        std::string global_namespace_;
         std::atomic<bool> in_list_;
     };