diff --git a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.cpp b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.cpp
index 9f7317320a13d5598c9457fe2fa5fcf4bc14fda7..399b866e463070c086d9077407086076b9573da1 100644
--- a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.cpp
@@ -52,8 +52,8 @@
 namespace armarx::armem
 {
 
-    MappingDataReader::MappingDataReader(ManagedIceObject& component)
-        : armarx::armem::MemoryConnector(component) {}
+    MappingDataReader::MappingDataReader(armem::ClientReaderComponentPluginUser& memoryClient)
+        : memoryClient(memoryClient) {}
 
     MappingDataReader::~MappingDataReader() = default;
 
@@ -61,9 +61,9 @@ namespace armarx::armem
         armarx::PropertyDefinitionsPtr& def)
     {
         ARMARX_DEBUG << "TransformReader: registerPropertyDefinitions";
-        MemoryConnector::registerPropertyDefinitions(def);
+        registerPropertyDefinitions(def);
 
-        const std::string prefix = getPropertyPrefix();
+        const std::string prefix = propertyPrefix;
 
         def->optional(properties.mappingMemoryName, prefix + "MappingMemoryName",
                       "Name of the mapping memory core segment to use.");
@@ -76,7 +76,7 @@ namespace armarx::armem
         // Wait for the memory to become available and add it as dependency.
         ARMARX_IMPORTANT << "TransformReader: Waiting for memory '"
                          << properties.memoryName << "' ...";
-        auto result = useMemory(properties.memoryName);
+        auto result = memoryClient.useMemory(properties.memoryName);
         if (not result.success)
         {
             ARMARX_ERROR << result.errorMessage;
diff --git a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.h b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.h
index 5135d41b89c14380d85b5af4f1e90323cf9feb70..4f1e32a850a3562a43ddb475f1bd3623bd523fa4 100644
--- a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.h
+++ b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataReader.h
@@ -27,6 +27,7 @@
 
 #include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
 
+#include <RobotAPI/libraries/armem/client.h>
 #include <RobotAPI/libraries/armem/client/Reader.h>
 #include <RobotAPI/libraries/armem/client/MemoryConnector.h>
 #include <RobotAPI/libraries/armem/client/query/Builder.h>
@@ -59,11 +60,10 @@ namespace armarx::armem
     *
     * Detailed description of class ExampleClient.
     */
-    class MappingDataReader :
-        virtual public armarx::armem::MemoryConnector
+    class MappingDataReader
     {
     public:
-        MappingDataReader(ManagedIceObject& component);
+        MappingDataReader(armem::ClientReaderComponentPluginUser& memoryClient);
 
         virtual ~MappingDataReader();
 
@@ -102,10 +102,6 @@ namespace armarx::armem
 
         void registerPropertyDefinitions(armarx::PropertyDefinitionsPtr& def);
 
-        const std::string& getPropertyPrefix() const override
-        {
-            return propertyPrefix;
-        }
 
         client::query::Builder buildQuery(const Query& query) const ;
 
@@ -122,7 +118,9 @@ namespace armarx::armem
         } properties;
 
 
-        const std::string propertyPrefix = "mem.mapping.read.";
+        const std::string propertyPrefix = "mem.mapping.";
+
+        armem::ClientReaderComponentPluginUser& memoryClient;
     };
 
 }  // namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.cpp b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.cpp
index 2216b159f0f18d336834e80f16b9c58c7d05948c..351d71398a6959f346aadf45c6c604edcd865a53 100644
--- a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.cpp
+++ b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.cpp
@@ -7,8 +7,8 @@
 namespace armarx::armem
 {
 
-    MappingDataWriter::MappingDataWriter(ManagedIceObject& component)
-        : MemoryConnector(component) {}
+    MappingDataWriter::MappingDataWriter(armem::ClientWriterComponentPluginUser& component)
+        : component(component) {}
 
     MappingDataWriter::~MappingDataWriter() = default;
 
@@ -17,9 +17,7 @@ namespace armarx::armem
     {
         ARMARX_DEBUG << "TransformWriter: registerPropertyDefinitions";
 
-        MemoryConnector::registerPropertyDefinitions(def);
-
-        const std::string prefix = getPropertyPrefix();
+        const std::string prefix = propertyPrefix;
 
         def->optional(properties.mappingMemoryName, prefix + "MappingMemoryName",
                       "Name of the mapping memory core segment to use.");
@@ -32,7 +30,7 @@ namespace armarx::armem
         // Wait for the memory to become available and add it as dependency.
         ARMARX_IMPORTANT << "MappingDataWriter: Waiting for memory '" << properties.memoryName
                          << "' ...";
-        auto result = useMemory(properties.memoryName);
+        auto result = component.useMemory(properties.memoryName);
         if (not result.success)
         {
             ARMARX_ERROR << result.errorMessage;
diff --git a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.h b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.h
index 4eddff56c3dfa7b314fc844fff6a18c60bd45003..e5de996746b7d54b46faa891cf2cd26007fbaf02 100644
--- a/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.h
+++ b/source/RobotAPI/libraries/armem_robot_mapping/MappingDataWriter.h
@@ -27,7 +27,7 @@
 #include <RobotAPI/interface/units/LaserScannerUnit.h>
 
 #include <RobotAPI/libraries/armem/client/Writer.h>
-#include <RobotAPI/libraries/armem/client/MemoryConnector.h>
+#include <RobotAPI/libraries/armem/client.h>
 
 
 namespace armarx::armem
@@ -44,11 +44,10 @@ namespace armarx::armem
     *
     * Detailed description of class ExampleClient.
     */
-    class MappingDataWriter :
-        virtual public ::armarx::armem::MemoryConnector
+    class MappingDataWriter
     {
     public:
-        MappingDataWriter(ManagedIceObject& component);
+        MappingDataWriter(armem::ClientWriterComponentPluginUser& component);
         virtual ~MappingDataWriter();
 
         void connect();
@@ -62,11 +61,6 @@ namespace armarx::armem
 
         bool storeSensorData(const LaserScan& laserScan, const std::string& frame, const std::string& agentName, const std::int64_t& timestamp);
 
-        const std::string& getPropertyPrefix() const override
-        {
-            return propertyPrefix;
-        }
-
     private:
         armem::client::Writer memoryWriter;
 
@@ -80,7 +74,9 @@ namespace armarx::armem
         std::mutex memoryWriterMutex;
 
 
-        const std::string propertyPrefix = "mem.mapping.write.";
+        const std::string propertyPrefix = "mem.mapping.";
+
+        armem::ClientWriterComponentPluginUser& component;
     };