diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt b/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt
index 99070a2c52f970a6ac9f64992a5a9a113de7f227..cc053e479e74106b7a682d6c2c40549eb486f5d0 100644
--- a/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt
+++ b/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt
@@ -8,7 +8,6 @@ set(COMPONENT_LIBS
     ArmarXCore ArmarXCoreInterfaces  # for DebugObserverInterface
     ArmarXGuiComponentPlugins
     RobotAPICore RobotAPIInterfaces armem
-    # RobotAPIComponentPlugins  # for ArViz and other plugins
 
     ${IVT_LIBRARIES}
 )
diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp
index 86db9939460d3661a0f358df3f5e41f76f7acf2d..446c0e2294ba03c7b9042d98416fc5a27f1513a7 100644
--- a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp
+++ b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp
@@ -76,7 +76,7 @@ namespace armarx
 
     void ExampleMemory::onConnectComponent()
     {
-        RemoteGui__createTab();
+        createRemoteGuiTab();
         RemoteGui_startRunningTask();
     }
 
@@ -95,7 +95,7 @@ namespace armarx
     armem::data::AddSegmentsResult ExampleMemory::addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&)
     {
         // This function is overloaded to trigger the remote gui rebuild.
-        armem::data::AddSegmentsResult result = ComponentPluginUser::addSegments(input, p.core.addOnUsage);
+        armem::data::AddSegmentsResult result = ReadWritePluginUser::addSegments(input, p.core.addOnUsage);
         tab.rebuild = true;
         return result;
     }
@@ -104,7 +104,7 @@ namespace armarx
     armem::data::CommitResult ExampleMemory::commit(const armem::data::Commit& commit, const Ice::Current&)
     {
         // This function is overloaded to trigger the remote gui rebuild.
-        armem::data::CommitResult result = ComponentPluginUser::commit(commit);
+        armem::data::CommitResult result = ReadWritePluginUser::commit(commit);
         tab.rebuild = true;
         return result;
     }
@@ -118,7 +118,7 @@ namespace armarx
 
     // REMOTE GUI
 
-    void ExampleMemory::RemoteGui__createTab()
+    void ExampleMemory::createRemoteGuiTab()
     {
         using namespace armarx::RemoteGui::Client;
 
@@ -136,7 +136,7 @@ namespace armarx
     {
         if (tab.rebuild.exchange(false))
         {
-            RemoteGui__createTab();
+            createRemoteGuiTab();
         }
     }
 
diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h
index 86741dcff79045c02e04c1bf7b7f68df60ccacdc..a7dda191aa96c14567899a4f9064edf5f69d2bcf 100644
--- a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h
+++ b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h
@@ -27,9 +27,8 @@
 
 #include <ArmarXCore/interface/observers/ObserverInterface.h>
 #include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h>
-#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
 
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
 
 namespace armarx
@@ -47,9 +46,8 @@ namespace armarx
      */
     class ExampleMemory :
         virtual public armarx::Component
-        , virtual public armem::server::ComponentPluginUser
+        , virtual public armem::server::ReadWritePluginUser
         , virtual public LightweightRemoteGuiComponentPluginUser
-    // , virtual public armarx::ArVizComponentPluginUser
     {
     public:
 
@@ -65,7 +63,7 @@ namespace armarx
 
         // LightweightRemoteGuiComponentPluginUser interface
     public:
-        void RemoteGui__createTab();
+        void createRemoteGuiTab();
         void RemoteGui_update() override;
 
 
diff --git a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp
index 02a4c51c8c501b28c63e589537b957c0bab7cc7e..756ffdcabdaa97085db88e4d186058d24790dfb7 100644
--- a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp
+++ b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp
@@ -76,7 +76,7 @@ namespace armarx
     armem::data::AddSegmentsResult GeneralPurposeMemory::addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&)
     {
         // Allowing adding core segments.
-        armem::data::AddSegmentsResult result = ComponentPluginUser::addSegments(input, addCoreSegmentOnUsage);
+        armem::data::AddSegmentsResult result = ReadWritePluginUser::addSegments(input, addCoreSegmentOnUsage);
         return result;
     }
 
diff --git a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h
index fe0aa7989fbe6108ae7b162777b9746dd77c0e78..0ee828883381d8e8272b2d49a1fdfa81179e69ed 100644
--- a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h
+++ b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h
@@ -28,7 +28,7 @@
 #include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h>
 #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
 
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
 
 namespace armarx
@@ -45,8 +45,8 @@ namespace armarx
      * Detailed description of class GeneralPurposeMemory.
      */
     class GeneralPurposeMemory :
-        virtual public armarx::Component,
-        virtual public armem::server::ComponentPluginUser
+        virtual public armarx::Component
+        , virtual public armem::server::ReadWritePluginUser
     {
     public:
 
diff --git a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp
index f44ee600791e3bfaae64b9c119b458241c4a8ab4..3555cb2d4ed20b423c43dcc127f35f9983001ad3 100644
--- a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp
+++ b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp
@@ -22,12 +22,6 @@
 
 #include "MotionMemory.h"
 
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <SimoxUtility/algorithm/string.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-
 
 namespace armarx
 {
@@ -44,7 +38,7 @@ namespace armarx
 
 
     MotionMemory::MotionMemory() :
-        mdbMotions(armem::server::ComponentPluginUser::iceAdapter())
+        mdbMotions(iceAdapter())
     {
     }
 
diff --git a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h
index 2363dae593ffe51693cec3cca45ce8eef54b206c..b457d713a58a369b83f8f176d8bd241de95be37f 100644
--- a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h
+++ b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h
@@ -22,11 +22,11 @@
 
 #pragma once
 
+#include <RobotAPI/libraries/armem_motions/server/MotionDatabase/MDBMotions/Segment.h>
 
-#include <ArmarXCore/core/Component.h>
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
-#include <RobotAPI/libraries/armem_motions/server/MotionDatabase/MDBMotions/Segment.h>
+#include <ArmarXCore/core/Component.h>
 
 
 namespace armarx
@@ -44,7 +44,7 @@ namespace armarx
      */
     class MotionMemory :
         virtual public armarx::Component
-        , virtual public armem::server::ComponentPluginUser
+        , virtual public armem::server::ReadWritePluginUser
     {
     public:
 
diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
index 23a8210166eada153da6fe5542c37676bd61d4a0..c605df2efece207f0a0b11337dd96c61ca534470 100644
--- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
+++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
@@ -58,10 +58,9 @@ namespace armarx::armem::server::obj
 
 
     ObjectMemory::ObjectMemory() :
-        server::ComponentPluginUser(),
-        instance::SegmentAdapter(server::ComponentPluginUser::iceAdapter()),
-        classSegment(server::ComponentPluginUser::iceAdapter()),
-        attachmentSegment(server::ComponentPluginUser::iceAdapter())
+        instance::SegmentAdapter(iceAdapter()),
+        classSegment(iceAdapter()),
+        attachmentSegment(iceAdapter())
     {
     }
 
diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
index 44332653fc095f826aac0ccf5e5e79c124769dfd..91217c90cc0dcb5be302663a0b472cac3327f3c0 100644
--- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
+++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
@@ -26,7 +26,7 @@
 #include <RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h>
 #include <RobotAPI/libraries/armem_objects/server/attachments/Segment.h>
 
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
 #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
 #include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotStateComponentPlugin.h>
@@ -59,7 +59,7 @@ namespace armarx::armem::server::obj
         virtual public Component
 
         , virtual public armarx::armem::server::ObjectMemoryInterface
-        , virtual public armarx::armem::server::ComponentPluginUser
+        , virtual public armarx::armem::server::ReadWritePluginUser
         , virtual public armarx::armem::server::obj::instance::SegmentAdapter
 
         , virtual public armarx::RobotStateComponentPluginUser
@@ -120,6 +120,6 @@ namespace armarx::armem::server::obj
 
     };
 
-}  // namespace armarx::armem::server::obj
+}
 
 #undef ICE_CURRENT_ARG
diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
index 2b6edb972a904b10b8893c67d4564f286d0ea9dd..27aaa07ddf1c0f0dc819a9a74366036cdadfe11c 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
@@ -22,32 +22,25 @@
 
 #include "RobotStateMemory.h"
 
-// STD
-#include <memory>
+#include <RobotAPI/libraries/armem_robot_state/server/proprioception/aron_conversions.h>
 
-// Simox
-#include <SimoxUtility/algorithm/string.h>
+#include <RobotAPI/libraries/armem_robot_state/server/common/Visu.h>
+#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h>
 
-// ArmarX
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/system/ArmarXDataPath.h>
 #include <ArmarXCore/libraries/ArmarXCoreComponentPlugins/DebugObserverComponentPlugin.h>
+#include <ArmarXCore/core/logging/Logging.h>
 
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem_robot_state/server/common/Visu.h>
-#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h>
-
-#include <RobotAPI/libraries/armem_robot_state/server/proprioception/aron_conversions.h>
+#include <SimoxUtility/algorithm/string.h>
 
 
 namespace armarx::armem::server::robot_state
 {
 
     RobotStateMemory::RobotStateMemory() :
-        descriptionSegment(server::ComponentPluginUser::iceAdapter()),
-        proprioceptionSegment(server::ComponentPluginUser::iceAdapter()),
-        localizationSegment(server::ComponentPluginUser::iceAdapter()),
+        descriptionSegment(iceAdapter()),
+        proprioceptionSegment(iceAdapter()),
+        localizationSegment(iceAdapter()),
         commonVisu(descriptionSegment, proprioceptionSegment, localizationSegment)
     {
         addPlugin(debugObserver);
@@ -59,19 +52,17 @@ namespace armarx::armem::server::robot_state
         robotUnit.writer.setTag(getName());
     }
 
-    RobotStateMemory::~RobotStateMemory() = default;
+
+    RobotStateMemory::~RobotStateMemory()
+    {
+    }
 
 
     armarx::PropertyDefinitionsPtr RobotStateMemory::createPropertyDefinitions()
     {
         armarx::PropertyDefinitionsPtr defs = new ComponentPropertyDefinitions(getConfigIdentifier());
 
-        const std::string prefix = "mem.";
-
-        this->setMemoryName("RobotState");
-        defs->optional(workingMemory().name(), prefix + "MemoryName", "Name of this memory server.");
-
-        const std::string robotUnitPrefix{sensorValuePrefix};
+        const std::string robotUnitPrefix = sensorValuePrefix;
 
         defs->optional(robotUnit.reader.properties.sensorPrefix, robotUnitPrefix + "SensorValuePrefix",
                        "Prefix of all sensor values.");
@@ -83,6 +74,11 @@ namespace armarx::armem::server::robot_state
                        "Minimum is 1, max is " + std::to_string(ROBOT_UNIT_MAXIMUM_FREQUENCY) + ".")
         .setMin(1).setMax(ROBOT_UNIT_MAXIMUM_FREQUENCY);
 
+
+        const std::string prefix = "mem.";
+
+        workingMemory().name() = "RobotState";
+
         descriptionSegment.defineProperties(defs, prefix + "desc.");
         proprioceptionSegment.defineProperties(defs, prefix + "prop.");
         localizationSegment.defineProperties(defs, prefix + "loc.");
@@ -105,7 +101,7 @@ namespace armarx::armem::server::robot_state
         localizationSegment.onInit();
         commonVisu.init();
 
-        robotUnit.pollFrequency = std::clamp(robotUnit.pollFrequency, 1, ROBOT_UNIT_MAXIMUM_FREQUENCY);
+        robotUnit.pollFrequency = std::clamp(robotUnit.pollFrequency, 0.f, ROBOT_UNIT_MAXIMUM_FREQUENCY);
         robotUnit.writer.properties.memoryBatchSize = std::max(static_cast<unsigned int>(1), robotUnit.writer.properties.memoryBatchSize);
 
         std::vector<std::string> includePaths;
@@ -185,7 +181,6 @@ namespace armarx::armem::server::robot_state
 
     void RobotStateMemory::startRobotUnitStream()
     {
-        std::lock_guard lock{startStopMutex};
         if (robotUnit.reader.task->isRunning() || robotUnit.writer.task->isRunning())
         {
             if (robotUnit.reader.task->isRunning() && robotUnit.writer.task->isRunning())
@@ -213,7 +208,6 @@ namespace armarx::armem::server::robot_state
 
     void RobotStateMemory::stopRobotUnitStream()
     {
-        std::lock_guard lock{startStopMutex};
         robotUnit.reader.task->stop();
         robotUnit.writer.task->stop();
     }
diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h
index 2cd2be9e3a5838f16b1a385e829416429b7869cd..74dd4a3fa12fea08186ec14d1b93fdf6872ac7dd 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h
@@ -22,17 +22,14 @@
 
 #pragma once
 
-// STD
-#include <atomic>
-#include <optional>
+#include <mutex>
 #include <queue>
 
-// ArmarX
 #include <ArmarXCore/core/Component.h>
 
 #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
 #include <RobotAPI/libraries/RobotUnitDataStreamingReceiver/RobotUnitDataStreamingReceiver.h>
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
 #include <RobotAPI/libraries/armem_robot_state/server/description/Segment.h>
 #include <RobotAPI/libraries/armem_robot_state/server/localization/Segment.h>
@@ -64,7 +61,7 @@ namespace armarx::armem::server::robot_state
      */
     class RobotStateMemory :
         virtual public armarx::Component,
-        virtual public armem::server::ComponentPluginUser,
+        virtual public armem::server::ReadWritePluginUser,
         virtual public armarx::ArVizComponentPluginUser
     {
     public:
@@ -96,7 +93,6 @@ namespace armarx::armem::server::robot_state
 
         armarx::plugins::DebugObserverComponentPlugin* debugObserver = nullptr;
 
-        mutable std::recursive_mutex startStopMutex;
 
         // Core segments
         // - description
@@ -115,7 +111,7 @@ namespace armarx::armem::server::robot_state
 
         struct RobotUnit
         {
-            int pollFrequency = 50;
+            float pollFrequency = 50;
 
             armarx::plugins::RobotUnitComponentPlugin* plugin = nullptr;
             proprioception::RobotUnitReader reader;
@@ -123,13 +119,13 @@ namespace armarx::armem::server::robot_state
 
             // queue
             std::queue<proprioception::RobotUnitData> dataQueue;
-            mutable std::mutex dataMutex;
+            std::mutex dataMutex;
         };
         RobotUnit robotUnit;
 
 
         // params
-        static constexpr int ROBOT_UNIT_MAXIMUM_FREQUENCY = 100;
+        static constexpr float ROBOT_UNIT_MAXIMUM_FREQUENCY = 100;
         static constexpr const char* sensorValuePrefix = "RobotUnit.";
 
 
diff --git a/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt b/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt
index b9d1d4fd44ed2bf58f8eccd64faa9ab0eafc83ef..eee41fad2917ac3689f98d103f1a927a0715d205 100644
--- a/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt
+++ b/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt
@@ -2,10 +2,9 @@ armarx_component_set_name("SkillsMemory")
 
 
 set(COMPONENT_LIBS
-    ArmarXCore ArmarXCoreInterfaces ArmarXCoreObservers # for DebugObserverInterface
-    ArmarXGuiComponentPlugins
-    RobotAPICore RobotAPIInterfaces armem armem_skills
-    # RobotAPIComponentPlugins  # for ArViz and other plugins
+    ArmarXCore ArmarXCoreInterfaces
+    RobotAPICore RobotAPIInterfaces
+    armem armem_skills
 
     ${IVT_LIBRARIES}
 )
diff --git a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp
index 2899736c93b1437772dea19f9cd83ce15610f4c2..f7741f3d3991896c43f2d3172c515bfec35af0ef 100644
--- a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp
+++ b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp
@@ -31,8 +31,6 @@
 #include <RobotAPI/libraries/armem/core/error.h>
 #include <RobotAPI/libraries/armem/core/wm/memory_definitions.h>
 #include <RobotAPI/libraries/armem/server/wm/memory_definitions.h>
-#include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h>
-
 #include <RobotAPI/libraries/armem_skills/aron_conversions.h>
 
 
@@ -51,9 +49,6 @@ namespace armarx
         workingMemory().name() = "Skills";
 
 
-        // Publish
-        defs->topic(debugObserver);
-
         // Statechart Logging
         defs->optional(p.statechartCoreSegmentName, "StatechartCoreSegmentName", "Name of the core segment for statecharts.");
         defs->optional(p.statechartTransitionsProviderSegmentName, "TransitionsProviderSegmentName", "Name of the provider segment for statechart transitions.");
@@ -102,14 +97,7 @@ namespace armarx
     // WRITING
     armem::data::AddSegmentsResult SkillsMemory::addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&)
     {
-        armem::data::AddSegmentsResult result = ComponentPluginUser::addSegments({input}, p.core.addOnUsage);
-        return result;
-    }
-
-
-    armem::data::CommitResult SkillsMemory::commit(const armem::data::Commit& commit, const Ice::Current&)
-    {
-        armem::data::CommitResult result = ComponentPluginUser::commit(commit);
+        armem::data::AddSegmentsResult result = ReadWritePluginUser::addSegments({input}, p.core.addOnUsage);
         return result;
     }
 
diff --git a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h
index 0c64f675160bb12c3937aee8561e58868d8abb28..6eb9114c94a94c851ba6e7437bb74338353b90db 100644
--- a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h
+++ b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h
@@ -24,12 +24,9 @@
 
 
 #include <ArmarXCore/core/Component.h>
-#include <ArmarXCore/interface/observers/ObserverInterface.h>
 
-#include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
-#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
 #include <RobotAPI/libraries/armem_skills/aron/Statechart.aron.generated.h>
 #include <RobotAPI/libraries/armem_skills/StatechartListener.h>
 
@@ -49,8 +46,7 @@ namespace armarx
      */
     class SkillsMemory :
         virtual public armarx::Component,
-        virtual public armem::server::ComponentPluginUser
-    // , virtual public armarx::ArVizComponentPluginUser
+        virtual public armem::server::ReadWritePluginUser
     {
     public:
 
@@ -64,7 +60,6 @@ namespace armarx
     public:
 
         armem::data::AddSegmentsResult addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&) override;
-        armem::data::CommitResult commit(const armem::data::Commit& commit, const Ice::Current&) override;
 
 
     protected:
@@ -87,8 +82,6 @@ namespace armarx
 
     private:
 
-        DebugObserverInterfacePrx debugObserver;
-
         struct Properties
         {
             // Statechart transition logging
diff --git a/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h b/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h
index 2382459ee2fa0ad5bd52300c25cbad0562ed5921..8018df78fc2b92de1353089521c8649aded3b377 100644
--- a/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h
+++ b/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h
@@ -24,7 +24,7 @@
 
 
 #include <ArmarXCore/core/Component.h>
-#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
+#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h>
 
 #include <RobotAPI/libraries/armem_subjects/server/MotionDatabase/Segment.h>
 
@@ -43,7 +43,7 @@ namespace armarx
      */
     class SubjectMemory :
         virtual public armarx::Component
-        , virtual public armem::server::ComponentPluginUser
+        , virtual public armem::server::ReadWritePluginUser
     {
     public: