diff --git a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp
index 2e59775c3a5fad62e963d481ea90482968290b70..6525be6b5414daa0d3052f3bc2d6effc7acf5c46 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp
+++ b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp
@@ -23,7 +23,7 @@ namespace armarx::plugins
 
     void ObjectPoseClientPlugin::preOnConnectComponent()
     {
-        parent<ObjectPoseClientPluginUser>().objectPoseStorage = createObjectPoseStorage();
+        _objectPoseStorage = createObjectPoseStorage();
     }
 
     objpose::ObjectPoseStorageInterfacePrx ObjectPoseClientPlugin::createObjectPoseStorage()
@@ -63,23 +63,18 @@ namespace armarx
 
     objpose::ObjectPoseClient ObjectPoseClientPluginUser::getClient() const
     {
-        return objpose::ObjectPoseClient(objectPoseStorage, getObjectFinder());
+        return plugin->createClient();
     }
 
 
     objpose::ObjectPoseSeq ObjectPoseClientPluginUser::getObjectPoses()
     {
-        if (!objectPoseStorage)
-        {
-            ARMARX_WARNING << "No object pose observer.";
-            return {};
-        }
-        return objpose::fromIce(objectPoseStorage->getObjectPoses());
+        return getClient().fetchObjectPoses();
     }
 
     objpose::ObjectPoseSeq ObjectPoseClientPluginUser::getObjectPosesByProvider(const std::string& providerName)
     {
-        return objpose::ObjectPoseClient(objectPoseStorage, getObjectFinder()).fetchObjectPosesFromProvider(providerName);
+        return getClient().fetchObjectPosesFromProvider(providerName);
     }
 
 
diff --git a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h
index 22998723862c963ad38985f81e37204e35da7ac9..7f27d9768474ea7ff916d3b65fb03c7fff97aa56 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h
+++ b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h
@@ -16,9 +16,7 @@ namespace armarx::plugins
 
         using ComponentPlugin::ComponentPlugin;
 
-        void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
         objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage();
-
         objpose::ObjectPoseClient createClient();
 
         template<class...Ts>
@@ -45,12 +43,15 @@ namespace armarx::plugins
 
     private:
 
+        void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
+
         void preOnInitComponent() override;
         void preOnConnectComponent() override;
 
         static constexpr const char* PROPERTY_NAME = "ObjectMemoryName";
 
         ObjectFinder _finder;
+        objpose::ObjectPoseStorageInterfacePrx _objectPoseStorage;
 
     };
 }
@@ -73,12 +74,8 @@ namespace armarx
 
         ObjectPoseClientPluginUser();
 
-        objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage();
-        objpose::ObjectPoseStorageInterfacePrx objectPoseStorage;
-
-
         objpose::ObjectPoseClient getClient() const;
-
+        objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage();
 
         objpose::ObjectPoseSeq getObjectPoses();
         objpose::ObjectPoseSeq getObjectPosesByProvider(const std::string& providerName);