diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
index 57e9e83f81dea648c4ac4b76a3cb61d671455d3b..331d7b35ed6d9720e1436a3776026783caf179b4 100644
--- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
+++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
@@ -26,6 +26,9 @@
 namespace armarx::armem::server::obj
 {
 
+    const std::string ObjectMemory::defaultMemoryName = "Object";
+
+
     armarx::PropertyDefinitionsPtr ObjectMemory::createPropertyDefinitions()
     {
         armarx::PropertyDefinitionsPtr defs(new ComponentPropertyDefinitions(getConfigIdentifier()));
@@ -39,14 +42,20 @@ namespace armarx::armem::server::obj
         // Use
         defs->component(kinematicUnitObserver);
 
-        instance::SegmentAdapter::defineProperties(defs, "inst.");
+
+        const std::string prefix = "mem.";
+
+        memory.name() = defaultMemoryName;
+        defs->optional(memory.name(), prefix + "MemoryName", "Name of this memory server.");
+
+        instance::SegmentAdapter::defineProperties(defs, prefix + "inst.");
 
         return defs;
     }
 
     ObjectMemory::ObjectMemory() :
         server::ComponentPluginUser(),
-        instance::SegmentAdapter(iceMemory, server::ComponentPluginUser::memoryMutex)
+        instance::SegmentAdapter(server::ComponentPluginUser::iceMemory, server::ComponentPluginUser::memoryMutex)
     {
     }
 
@@ -57,6 +66,8 @@ namespace armarx::armem::server::obj
 
     void ObjectMemory::onInitComponent()
     {
+        memory.name() = defaultMemoryName;
+
         instance::SegmentAdapter::init();
 
         // usingTopicFromProperty("ObjectPoseTopicName");
diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
index 7cb53eb305fe810a89a426cccfaf3f6065ba8aa7..52062816fbdf18079bba724d2a025d9ee0f55e8d 100644
--- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
+++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
@@ -68,6 +68,10 @@ namespace armarx::armem::server::obj
 
         using RobotState = armarx::RobotStateComponentPluginUser;
 
+        static const std::string defaultMemoryName;
+
+
+    public:
 
         ObjectMemory();
 
@@ -76,7 +80,6 @@ namespace armarx::armem::server::obj
         std::string getDefaultName() const override;
 
 
-
     public:
 
         armarx::PropertyDefinitionsPtr createPropertyDefinitions() override;
@@ -93,9 +96,6 @@ namespace armarx::armem::server::obj
         void RemoteGui_update() override;
 
 
-    private:
-
-
     private:
 
         DebugObserverInterfacePrx debugObserver;
diff --git a/source/RobotAPI/libraries/armem_objects/CMakeLists.txt b/source/RobotAPI/libraries/armem_objects/CMakeLists.txt
index db06db2f0a9781f03a10e9a9dd7fbd5b20b2b6de..04be23c592090629a5c6ae1bbc5e3308bf77b02a 100644
--- a/source/RobotAPI/libraries/armem_objects/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem_objects/CMakeLists.txt
@@ -15,13 +15,13 @@ armarx_add_library(
         RobotAPI::libraries::armem
     HEADERS
         server/instance/SegmentAdapter.h
-        server/instance/Data.h
+        server/instance/Segment.h
         server/instance/Decay.h
         server/instance/RobotHeadMovement.h
         server/instance/Visu.h
     SOURCES
         server/instance/SegmentAdapter.cpp
-        server/instance/Data.cpp
+        server/instance/Segment.cpp
         server/instance/Decay.cpp
         server/instance/RobotHeadMovement.cpp
         server/instance/Visu.cpp
diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Data.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
similarity index 87%
rename from source/RobotAPI/libraries/armem_objects/server/instance/Data.cpp
rename to source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
index 293c00a5e236c9af01832b8470ad1ef9f668b8b8..0e1cc8cf6be52d8865d15ba0ad6886d9886f5729 100644
--- a/source/RobotAPI/libraries/armem_objects/server/instance/Data.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
@@ -1,4 +1,4 @@
-#include "Data.h"
+#include "Segment.h"
 
 #include <RobotAPI/libraries/core/Pose.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
@@ -18,14 +18,9 @@
 namespace armarx::armem::server::obj::instance
 {
 
-    const std::string Data::defaultMemoryName = "Object";
-
-    Data::Data(armem::Memory& memory, armem::server::MemoryToIceAdapter& memoryToIceAdapter) :
-        memory(memory),
-        memoryToIceAdapter(memoryToIceAdapter)
+    Segment::Segment(armem::server::MemoryToIceAdapter& memoryToIceAdapter) :
+        iceMemory(memoryToIceAdapter)
     {
-        memory.name() = defaultMemoryName;
-
         oobbCache.setFetchFn([this](const ObjectID & id) -> std::optional<simox::OrientedBoxf>
         {
             // Try to get OOBB from repository.
@@ -55,9 +50,8 @@ namespace armarx::armem::server::obj::instance
         });
     }
 
-    void Data::defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix)
+    void Segment::defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix)
     {
-        defs->optional(memory.name(), "mem.MemoryName", "Name of this memory server.");
         defs->optional(maxHistorySize, "mem.MaxHistorySize", "Maximal size of object poses history (-1 for infinite).");
         defs->optional(discardSnapshotsWhileAttached, "mem.DiscardSnapshotsWhileAttached",
                        "If true, no new snapshots are stored while an object is attached to a robot node.\n"
@@ -66,14 +60,16 @@ namespace armarx::armem::server::obj::instance
         decay.defineProperties(defs, prefix + "decay.");
     }
 
-    void Data::init()
+    void Segment::init()
     {
-        coreSegment = &memory.addCoreSegment("ObjectPose", objpose::arondto::ObjectPose::toInitialAronType());
+        ARMARX_CHECK_NOT_NULL(iceMemory.memory);
+
+        coreSegment = &iceMemory.memory->addCoreSegment("ObjectPose", objpose::arondto::ObjectPose::toInitialAronType());
         coreSegment->setMaxHistorySize(maxHistorySize);
     }
 
 
-    Data::CommitStats Data::commitObjectPoses(
+    Segment::CommitStats Segment::commitObjectPoses(
         const std::string& providerName,
         const objpose::data::ProvidedObjectPoseSeq& providedPoses,
         std::optional<armem::Time> discardUpdatesUntil)
@@ -92,7 +88,7 @@ namespace armarx::armem::server::obj::instance
             const armem::Entity* entity = findObjectEntity(armarx::fromIce(provided.objectID), providerName);
             if (entity)
             {
-                const objpose::arondto::ObjectPose data = armem::server::obj::instance::Data::getLatestInstanceData(*entity);
+                const objpose::arondto::ObjectPose data = getLatestInstanceData(*entity);
 
                 previousPose = objpose::ObjectPose();
                 objpose::fromAron(data, *previousPose);
@@ -155,7 +151,7 @@ namespace armarx::armem::server::obj::instance
         return stats;
     }
 
-    void Data::commitObjectPoses(const std::string& providerName, const ObjectPoseSeq& objectPoses)
+    void Segment::commitObjectPoses(const std::string& providerName, const ObjectPoseSeq& objectPoses)
     {
         ARMARX_CHECK_NOT_NULL(coreSegment);
 
@@ -181,24 +177,24 @@ namespace armarx::armem::server::obj::instance
                 update.instancesData.push_back(dto.toAron());
             }
 
-            memoryToIceAdapter.commit(commit);
+            iceMemory.commit(commit);
         }
     }
 
 
-    armem::CoreSegment& Data::getCoreSegment()
+    armem::CoreSegment& Segment::getCoreSegment()
     {
         ARMARX_CHECK_NOT_NULL(coreSegment);
         return *coreSegment;
     }
 
-    const armem::CoreSegment& Data::getCoreSegment() const
+    const armem::CoreSegment& Segment::getCoreSegment() const
     {
         ARMARX_CHECK_NOT_NULL(coreSegment);
         return *coreSegment;
     }
 
-    objpose::ObjectPoseSeq Data::getObjectPoses(IceUtil::Time now)
+    objpose::ObjectPoseSeq Segment::getObjectPoses(IceUtil::Time now)
     {
         ObjectPoseSeq objectPoses = getLatestObjectPoses();
         updateObjectPoses(objectPoses, now);
@@ -206,7 +202,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    objpose::ObjectPoseSeq Data::getObjectPosesByProvider(
+    objpose::ObjectPoseSeq Segment::getObjectPosesByProvider(
         const std::string& providerName,
         IceUtil::Time now)
     {
@@ -216,7 +212,7 @@ namespace armarx::armem::server::obj::instance
         return filterObjectPoses(objectPoses);
     }
 
-    armem::Entity* Data::findObjectEntity(const ObjectID& objectID, const std::string& providerName)
+    armem::Entity* Segment::findObjectEntity(const ObjectID& objectID, const std::string& providerName)
     {
         ARMARX_CHECK_NOT_NULL(coreSegment);
         armem::MemoryID entityID = armem::MemoryID().withEntityName(objectID.str());
@@ -247,7 +243,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    void Data::updateObjectPoses(ObjectPoseSeq& objectPoses, IceUtil::Time now)
+    void Segment::updateObjectPoses(ObjectPoseSeq& objectPoses, IceUtil::Time now)
     {
         bool agentSynchronized = false;
 
@@ -258,7 +254,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    void Data::updateObjectPoses(
+    void Segment::updateObjectPoses(
         ObjectPoseSeq& objectPoses,
         IceUtil::Time now,
         VirtualRobot::RobotPtr agent,
@@ -271,7 +267,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    void Data::updateObjectPose(
+    void Segment::updateObjectPose(
         ObjectPose& objectPose,
         IceUtil::Time now,
         VirtualRobot::RobotPtr agent,
@@ -286,7 +282,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    objpose::ObjectPoseSeq Data::filterObjectPoses(const ObjectPoseSeq& objectPoses) const
+    objpose::ObjectPoseSeq Segment::filterObjectPoses(const ObjectPoseSeq& objectPoses) const
     {
         ObjectPoseSeq result;
         for (const ObjectPose& objectPose : objectPoses)
@@ -300,7 +296,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    void Data::updateAttachement(
+    void Segment::updateAttachement(
         ObjectPose& objectPose, VirtualRobot::RobotPtr agent, bool& synchronized) const
     {
         if (!objectPose.attachment)
@@ -318,34 +314,34 @@ namespace armarx::armem::server::obj::instance
         objectPose.updateAttached(agent);
     }
 
-    objpose::ObjectPoseSeq Data::getLatestObjectPoses() const
+    objpose::ObjectPoseSeq Segment::getLatestObjectPoses() const
     {
         ARMARX_CHECK_NOT_NULL(coreSegment);
         return getLatestObjectPoses(*coreSegment);
     }
 
-    objpose::ObjectPoseSeq Data::getLatestObjectPoses(const armem::CoreSegment& coreSeg)
+    objpose::ObjectPoseSeq Segment::getLatestObjectPoses(const armem::CoreSegment& coreSeg)
     {
         ObjectPoseSeq result;
         getLatestObjectPoses(coreSeg, result);
         return result;
     }
 
-    objpose::ObjectPoseSeq Data::getLatestObjectPoses(const armem::ProviderSegment& provSeg)
+    objpose::ObjectPoseSeq Segment::getLatestObjectPoses(const armem::ProviderSegment& provSeg)
     {
         ObjectPoseSeq result;
         getLatestObjectPoses(provSeg, result);
         return result;
     }
 
-    objpose::ObjectPose Data::getLatestObjectPose(const armem::Entity& entity)
+    objpose::ObjectPose Segment::getLatestObjectPose(const armem::Entity& entity)
     {
         ObjectPose result;
         getLatestObjectPose(entity, result);
         return result;
     }
 
-    void Data::getLatestObjectPoses(const armem::CoreSegment& coreSeg, ObjectPoseSeq& out)
+    void Segment::getLatestObjectPoses(const armem::CoreSegment& coreSeg, ObjectPoseSeq& out)
     {
         for (const auto& [_, provSegment] : coreSeg)
         {
@@ -353,7 +349,7 @@ namespace armarx::armem::server::obj::instance
         }
     }
 
-    void Data::getLatestObjectPoses(const armem::ProviderSegment& provSegment, ObjectPoseSeq& out)
+    void Segment::getLatestObjectPoses(const armem::ProviderSegment& provSegment, ObjectPoseSeq& out)
     {
         for (const auto& [_, entity] : provSegment)
         {
@@ -365,7 +361,7 @@ namespace armarx::armem::server::obj::instance
         }
     }
 
-    void Data::getLatestObjectPose(const armem::Entity& entity, ObjectPose& out)
+    void Segment::getLatestObjectPose(const armem::Entity& entity, ObjectPose& out)
     {
         for (const armem::EntityInstance& instance : entity.getLatestSnapshot())
         {
@@ -377,7 +373,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    objpose::arondto::ObjectPose Data::getLatestInstanceData(const armem::Entity& entity)
+    objpose::arondto::ObjectPose Segment::getLatestInstanceData(const armem::Entity& entity)
     {
         ARMARX_CHECK_GREATER_EQUAL(entity.size(), 1);
         const armem::EntitySnapshot& snapshot = entity.getLatestSnapshot();
@@ -391,12 +387,12 @@ namespace armarx::armem::server::obj::instance
         return data;
     }
 
-    std::optional<simox::OrientedBoxf> Data::getObjectOOBB(const ObjectID& id)
+    std::optional<simox::OrientedBoxf> Segment::getObjectOOBB(const ObjectID& id)
     {
         return oobbCache.get(id);
     }
 
-    objpose::ProviderInfo Data::getProviderInfo(const std::string& providerName)
+    objpose::ProviderInfo Segment::getProviderInfo(const std::string& providerName)
     {
         try
         {
@@ -418,7 +414,7 @@ namespace armarx::armem::server::obj::instance
 
 
     objpose::AttachObjectToRobotNodeOutput
-    Data::attachObjectToRobotNode(const objpose::AttachObjectToRobotNodeInput& input)
+    Segment::attachObjectToRobotNode(const objpose::AttachObjectToRobotNodeInput& input)
     {
         const armem::Time now = armem::Time::now();
 
@@ -506,7 +502,7 @@ namespace armarx::armem::server::obj::instance
         return output;
     }
 
-    objpose::DetachObjectFromRobotNodeOutput Data::detachObjectFromRobotNode(
+    objpose::DetachObjectFromRobotNodeOutput Segment::detachObjectFromRobotNode(
         const objpose::DetachObjectFromRobotNodeInput& input)
     {
         const armem::Time now = armem::Time::now();
@@ -556,13 +552,13 @@ namespace armarx::armem::server::obj::instance
 
     struct DetachVisitor : public armem::Visitor
     {
-        Data& owner;
+        Segment& owner;
         armem::Time now;
         bool commitAttachedPose;
 
         int numDetached = 0;
 
-        DetachVisitor(Data& owner, armem::Time now, bool commitAttachedPose) :
+        DetachVisitor(Segment& owner, armem::Time now, bool commitAttachedPose) :
             owner(owner), now(now), commitAttachedPose(commitAttachedPose)
         {
         }
@@ -584,7 +580,7 @@ namespace armarx::armem::server::obj::instance
     }
 
 
-    objpose::DetachAllObjectsFromRobotNodesOutput Data::detachAllObjectsFromRobotNodes(
+    objpose::DetachAllObjectsFromRobotNodesOutput Segment::detachAllObjectsFromRobotNodes(
         const objpose::DetachAllObjectsFromRobotNodesInput& input)
     {
         ARMARX_CHECK_NOT_NULL(coreSegment);
@@ -602,7 +598,7 @@ namespace armarx::armem::server::obj::instance
         return output;
     }
 
-    void Data::storeDetachedSnapshot(
+    void Segment::storeDetachedSnapshot(
         armem::Entity& entity,
         const objpose::arondto::ObjectPose& data,
         armem::Time now,
@@ -638,7 +634,7 @@ namespace armarx::armem::server::obj::instance
 
 
 
-    void Data::RemoteGui::setup(const Data& data)
+    void Segment::RemoteGui::setup(const Segment& data)
     {
         using namespace armarx::RemoteGui::Client;
 
@@ -660,7 +656,7 @@ namespace armarx::armem::server::obj::instance
         group.addChild(grid);
     }
 
-    void Data::RemoteGui::update(Data& data)
+    void Segment::RemoteGui::update(Segment& data)
     {
         if (infiniteHistory.hasValueChanged() || maxHistorySize.hasValueChanged())
         {
diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Data.h b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.h
similarity index 94%
rename from source/RobotAPI/libraries/armem_objects/server/instance/Data.h
rename to source/RobotAPI/libraries/armem_objects/server/instance/Segment.h
index c6a4651b2020aa6e4c4d1b374de921bff7de10f9..275d9973856bc2a59a71c633374e98bee34cc845 100644
--- a/source/RobotAPI/libraries/armem_objects/server/instance/Data.h
+++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.h
@@ -26,12 +26,10 @@
 namespace armarx::armem::server::obj::instance
 {
 
-    class Data : public armarx::Logging
+    class Segment : public armarx::Logging
     {
     public:
 
-        static const std::string defaultMemoryName;
-
         struct CommitStats
         {
             int numUpdated = 0;
@@ -42,7 +40,7 @@ namespace armarx::armem::server::obj::instance
 
     public:
 
-        Data(armem::Memory& memory, armem::server::MemoryToIceAdapter& memoryToIceAdapter);
+        Segment(armem::server::MemoryToIceAdapter& iceMemory);
 
 
         void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix = "");
@@ -149,8 +147,7 @@ namespace armarx::armem::server::obj::instance
 
     private:
 
-        armem::Memory& memory;
-        armem::server::MemoryToIceAdapter& memoryToIceAdapter;
+        armem::server::MemoryToIceAdapter& iceMemory;
 
         armem::CoreSegment* coreSegment = nullptr;
 
@@ -176,8 +173,8 @@ namespace armarx::armem::server::obj::instance
             armarx::RemoteGui::Client::CheckBox infiniteHistory;
             armarx::RemoteGui::Client::CheckBox discardSnapshotsWhileAttached;
 
-            void setup(const Data& data);
-            void update(Data& data);
+            void setup(const Segment& data);
+            void update(Segment& data);
         };
 
     };
diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp
index 7b15c0a51265f353a8f55f4d8b5294af3ba1e3a3..91fa17d0317b1e081c35b8032aace7f64ce92912 100644
--- a/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp
@@ -22,8 +22,6 @@
 
 #include "SegmentAdapter.h"
 
-#include <RobotAPI/libraries/core/Pose.h>
-#include <RobotAPI/libraries/core/FramedPose.h>
 #include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h>
 #include <RobotAPI/libraries/ArmarXObjects/aron_conversions.h>
 #include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
@@ -32,17 +30,15 @@
 #include <ArmarXCore/observers/variant/Variant.h>
 
 #include <VirtualRobot/Robot.h>
-#include <VirtualRobot/RobotConfig.h>
 
 #include <SimoxUtility/algorithm/get_map_keys_values.h>
-#include <SimoxUtility/meta/EnumNames.hpp>
 
 
 namespace armarx::armem::server::obj::instance
 {
 
-    SegmentAdapter::SegmentAdapter(MemoryToIceSegmentAdapter& iceMemory, std::mutex& memoryMutex) :
-        data(*iceMemory.memory, iceMemory),
+    SegmentAdapter::SegmentAdapter(MemoryToIceAdapter& iceMemory, std::mutex& memoryMutex) :
+        data(iceMemory),
         memoryMutex(memoryMutex)
     {
     }
@@ -71,12 +67,12 @@ namespace armarx::armem::server::obj::instance
     }
 
     void SegmentAdapter::connect(
-            RobotStateComponentInterfacePrx robotStateComponent,
-            VirtualRobot::RobotPtr robot,
-            KinematicUnitObserverInterfacePrx kinematicUnitObserver,
-            viz::Client arviz,
-            DebugObserverInterfacePrx debugObserver
-            )
+        RobotStateComponentInterfacePrx robotStateComponent,
+        VirtualRobot::RobotPtr robot,
+        KinematicUnitObserverInterfacePrx kinematicUnitObserver,
+        viz::Client arviz,
+        DebugObserverInterfacePrx debugObserver
+    )
     {
         this->debugObserver = debugObserver;
         this->arviz = arviz;
@@ -174,7 +170,7 @@ namespace armarx::armem::server::obj::instance
             }
 
             TIMING_START(tCommitObjectPoses);
-            Data::CommitStats stats =
+            Segment::CommitStats stats =
                 data.commitObjectPoses(providerName, providedPoses, discard.updatesUntil);
             TIMING_END_STREAM(tCommitObjectPoses, ARMARX_VERBOSE);
 
@@ -461,14 +457,14 @@ namespace armarx::armem::server::obj::instance
 
 
 
-    void SegmentAdapter::RemoteGui::setup(const SegmentAdapter& SegmentAdapter)
+    void SegmentAdapter::RemoteGui::setup(const SegmentAdapter& adapter)
     {
         using namespace armarx::RemoteGui::Client;
 
-        this->visu.setup(SegmentAdapter.visu);
-        this->data.setup(SegmentAdapter.data);
-        this->decay.setup(SegmentAdapter.data.decay);
-        this->robotHead.setup(SegmentAdapter.robotHead);
+        this->visu.setup(adapter.visu);
+        this->data.setup(adapter.data);
+        this->decay.setup(adapter.data.decay);
+        this->robotHead.setup(adapter.robotHead);
 
         root = VBoxLayout
         {
@@ -477,21 +473,21 @@ namespace armarx::armem::server::obj::instance
         };
     }
 
-    void SegmentAdapter::RemoteGui::update(SegmentAdapter& SegmentAdapter)
+    void SegmentAdapter::RemoteGui::update(SegmentAdapter& adapter)
     {
         // Non-atomic variables need to be guarded by a mutex if accessed by multiple threads
         {
-            std::scoped_lock lock(SegmentAdapter.visuMutex);
-            this->visu.update(SegmentAdapter.visu);
+            std::scoped_lock lock(adapter.visuMutex);
+            this->visu.update(adapter.visu);
         }
         {
-            std::scoped_lock lock(SegmentAdapter.memoryMutex);
-            this->data.update(SegmentAdapter.data);
-            this->decay.update(SegmentAdapter.data.decay);
+            std::scoped_lock lock(adapter.memoryMutex);
+            this->data.update(adapter.data);
+            this->decay.update(adapter.data.decay);
         }
         {
-            std::scoped_lock lock(SegmentAdapter.robotHeadMutex);
-            this->robotHead.update(SegmentAdapter.robotHead);
+            std::scoped_lock lock(adapter.robotHeadMutex);
+            this->robotHead.update(adapter.robotHead);
         }
     }
 
diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h b/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h
index 8f84d0602ac7aec510af066ed6ee8970747c75ee..9819a162eee886fcb1e7878f5787b866d1273c82 100644
--- a/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h
+++ b/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h
@@ -34,7 +34,7 @@
 #include <RobotAPI/components/ArViz/Client/Client.h>
 
 #include <RobotAPI/libraries/armem/server/MemoryToIceAdapter.h>
-#include <RobotAPI/libraries/armem_objects/server/instance/Data.h>
+#include <RobotAPI/libraries/armem_objects/server/instance/Segment.h>
 #include <RobotAPI/libraries/armem_objects/server/instance/Decay.h>
 #include <RobotAPI/libraries/armem_objects/server/instance/Visu.h>
 #include <RobotAPI/libraries/armem_objects/server/instance/RobotHeadMovement.h>
@@ -62,12 +62,12 @@ namespace armarx::armem::server::obj::instance
 
         void init();
         void connect(
-                RobotStateComponentInterfacePrx robotStateComponent,
-                VirtualRobot::RobotPtr robot,
-                KinematicUnitObserverInterfacePrx kinematicUnitObserver,
-                viz::Client arviz,
-                DebugObserverInterfacePrx debugObserver
-                );
+            RobotStateComponentInterfacePrx robotStateComponent,
+            VirtualRobot::RobotPtr robot,
+            KinematicUnitObserverInterfacePrx kinematicUnitObserver,
+            viz::Client arviz,
+            DebugObserverInterfacePrx debugObserver
+        );
 
 
         // ObjectPoseTopic interface
@@ -126,7 +126,7 @@ namespace armarx::armem::server::obj::instance
         viz::Client arviz;
         DebugObserverInterfacePrx debugObserver;
 
-        instance::Data data;
+        instance::Segment data;
         std::mutex& memoryMutex;
 
         instance::RobotHeadMovement robotHead;
@@ -153,7 +153,7 @@ namespace armarx::armem::server::obj::instance
             armarx::RemoteGui::Client::VBoxLayout root;
 
             instance::Visu::RemoteGui visu;
-            instance::Data::RemoteGui data;
+            instance::Segment::RemoteGui data;
             instance::Decay::RemoteGui decay;
             instance::RobotHeadMovement::RemoteGui robotHead;