diff --git a/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt b/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
index 3e503f9a7f04ff1fdcdb4bb1988ee04f0b18666d..879422d20200f53cc0befe9b1c28f6b59220396a 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
+++ b/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
@@ -82,7 +82,6 @@ armarx_enable_aron_file_generation_for_target(
         "${LIB_NAME}"
     ARON_FILES
         aron/ObjectID.xml
-        aron/ObjectNames.xml
         aron/ObjectPose.xml
         aron/ObjectType.xml
         aron/PoseManifoldGaussian.xml
diff --git a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml b/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml
deleted file mode 100644
index eb99bea9cd5a6cef00552cb17239ed8b715f5b8d..0000000000000000000000000000000000000000
--- a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectNames.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-Recognized and spoken names of a known object.
--->
-<?xml version="1.0" encoding="UTF-8" ?>
-<AronTypeDefinition>
-    <GenerateTypes>
-
-        <Object name="armarx::arondto::ObjectNames">
-            <ObjectChild key="recognizedNames">
-                <List>
-                    <String/>
-                </List>
-            </ObjectChild>
-            <ObjectChild key="spokenNames">
-                <List>
-                    <String/>
-                </List>
-            </ObjectChild>
-        </Object>
-
-    </GenerateTypes>
-</AronTypeDefinition>
-
diff --git a/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml b/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml
index 019987f5054e844478066d377ad0bf1e948b6db7..190e105b4d17d222543ff72db8e2feada3db7b5d 100644
--- a/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml
+++ b/source/RobotAPI/libraries/armem_objects/aron/ObjectClass.xml
@@ -8,7 +8,7 @@ Core segment type of Object/Class.
         <PackagePath package="RobotAPI" path="libraries/aron/common/aron/OrientedBox.xml" />
         <PackagePath package="RobotAPI" path="libraries/aron/common/aron/PackagePath.xml" />
         <PackagePath package="RobotAPI" path="libraries/ArmarXObjects/aron/ObjectID.xml" />
-        <PackagePath package="RobotAPI" path="libraries/ArmarXObjects/aron/ObjectNames.xml" />
+        <PackagePath package="RobotAPI" path="libraries/aron/common/aron/Names.xml" />
         <PackagePath package="RobotAPI" path="libraries/armem/aron/MemoryID.xml" />
     </AronIncludes>
     <GenerateTypes>
@@ -83,7 +83,7 @@ Core segment type of Object/Class.
             </ObjectChild>
 
             <ObjectChild key="names">
-                <armarx::arondto::ObjectNames />
+                <armarx::arondto::Names />
             </ObjectChild>
 
             <ObjectChild key="ivtFeatures">
diff --git a/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp b/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
index da32c2771a2149f58e5ba3a1a01db93ecbe71028..62ee858c9a198e2141228d56fd5af09e1c30f1af 100644
--- a/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
+++ b/source/RobotAPI/libraries/armem_objects/aron_conversions.cpp
@@ -4,50 +4,53 @@
 #include <RobotAPI/libraries/armem/core/aron_conversions.h>
 #include <RobotAPI/libraries/aron/common/aron_conversions.h>
 
-namespace armarx::armem
+namespace armarx
 {
 
     void
-    fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo)
+    armem::fromAron(const arondto::ObjectInstance& dto, objpose::arondto::ObjectPose& bo)
     {
         bo = dto.pose;
     }
 
     void
-    toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
+    armem::toAron(arondto::ObjectInstance& dto, const objpose::arondto::ObjectPose& bo)
     {
         dto.pose = bo;
     }
 
     void
-    fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
+    armem::fromAron(const arondto::ObjectInstance& dto, objpose::ObjectPose& bo)
     {
         objpose::fromAron(dto.pose, bo);
     }
 
     void
-    toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
+    armem::toAron(arondto::ObjectInstance& dto, const objpose::ObjectPose& bo)
     {
         objpose::toAron(dto.pose, bo);
     }
 
     /* Attachments */
     void
-    fromAron(const arondto::attachment::AgentDescription& dto, attachment::AgentDescription& bo)
+    armem::fromAron(const arondto::attachment::AgentDescription& dto,
+                    attachment::AgentDescription& bo)
     {
         fromAron(dto.id, bo.id);
         aron::fromAron(dto.frame, bo.frame);
     }
 
     void
-    toAron(arondto::attachment::AgentDescription& dto, const attachment::AgentDescription& bo)
+    armem::toAron(arondto::attachment::AgentDescription& dto,
+                  const attachment::AgentDescription& bo)
     {
         toAron(dto.id, bo.id);
         aron::toAron(dto.frame, bo.frame);
     }
 
     void
-    fromAron(const arondto::attachment::ObjectAttachment& dto, attachment::ObjectAttachment& bo)
+    armem::fromAron(const arondto::attachment::ObjectAttachment& dto,
+                    attachment::ObjectAttachment& bo)
     {
         fromAron(dto.agent, bo.agent);
         aron::fromAron(dto.transformation, bo.transformation);
@@ -57,7 +60,8 @@ namespace armarx::armem
     }
 
     void
-    toAron(arondto::attachment::ObjectAttachment& dto, const attachment::ObjectAttachment& bo)
+    armem::toAron(arondto::attachment::ObjectAttachment& dto,
+                  const attachment::ObjectAttachment& bo)
     {
         toAron(dto.agent, bo.agent);
         aron::toAron(dto.transformation, bo.transformation);
@@ -67,8 +71,8 @@ namespace armarx::armem
     }
 
     void
-    fromAron(const arondto::attachment::ArticulatedObjectAttachment& dto,
-             attachment::ArticulatedObjectAttachment& bo)
+    armem::fromAron(const arondto::attachment::ArticulatedObjectAttachment& dto,
+                    attachment::ArticulatedObjectAttachment& bo)
     {
         fromAron(dto.agent, bo.agent);
         aron::fromAron(dto.transformation, bo.transformation);
@@ -78,8 +82,8 @@ namespace armarx::armem
     }
 
     void
-    toAron(arondto::attachment::ArticulatedObjectAttachment& dto,
-           const attachment::ArticulatedObjectAttachment& bo)
+    armem::toAron(arondto::attachment::ArticulatedObjectAttachment& dto,
+                  const attachment::ArticulatedObjectAttachment& bo)
     {
         toAron(dto.agent, bo.agent);
         aron::toAron(dto.transformation, bo.transformation);
@@ -89,7 +93,7 @@ namespace armarx::armem
     }
 
     void
-    toAron(arondto::Marker& dto, const marker::Marker& bo)
+    armem::toAron(arondto::Marker& dto, const marker::Marker& bo)
     {
         dto.name = bo.name;
         armarx::toAron(dto.robotGlobal, bo.robotGlobal);
@@ -100,7 +104,7 @@ namespace armarx::armem
     }
 
     void
-    fromAron(const arondto::Marker& dto, marker::Marker& bo)
+    armem::fromAron(const arondto::Marker& dto, marker::Marker& bo)
     {
         bo.name = dto.name;
         armarx::fromAron(dto.robotGlobal, bo.robotGlobal);
@@ -109,13 +113,13 @@ namespace armarx::armem
         armarx::fromAron(dto.markerPose, bo.markerPose);
     }
 
-} // namespace armarx::armem
+} // namespace armarx
 
-namespace armarx::armem::clazz
+namespace armarx::armem
 {
 
     void
-    fromAron(const arondto::Feature& dto, Feature& bo)
+    clazz::fromAron(const arondto::Feature& dto, Feature& bo)
     {
         bo.angle = dto.angle;
         bo.scale = dto.scale;
@@ -125,7 +129,7 @@ namespace armarx::armem::clazz
     }
 
     void
-    toAron(arondto::Feature& dto, const Feature& bo)
+    clazz::toAron(arondto::Feature& dto, const Feature& bo)
     {
         dto.angle = bo.angle;
         dto.scale = bo.scale;
@@ -135,7 +139,7 @@ namespace armarx::armem::clazz
     }
 
     void
-    fromAron(const arondto::ObjectClass& dto, ObjectClass& bo)
+    clazz::fromAron(const arondto::ObjectClass& dto, ObjectClass& bo)
     {
         armarx::fromAron(dto.id, bo.id);
         armarx::fromAron(dto.simoxXmlPath, bo.simoxXmlPath);
@@ -147,6 +151,7 @@ namespace armarx::armem::clazz
         armarx::fromAron(dto.meshObjPath, bo.meshObjPath);
         armarx::fromAron(dto.aabb, bo.aabb);
         armarx::fromAron(dto.oobb, bo.oobb);
+        fromAron(dto.names, bo.names);
         bo.ivtFeatures.clear();
         for (const auto& i : dto.ivtFeatures)
         {
@@ -155,7 +160,7 @@ namespace armarx::armem::clazz
     }
 
     void
-    toAron(arondto::ObjectClass& dto, const ObjectClass& bo)
+    clazz::toAron(arondto::ObjectClass& dto, const ObjectClass& bo)
     {
         armarx::toAron(dto.id, bo.id);
         armarx::toAron(dto.simoxXmlPath, bo.simoxXmlPath);
@@ -167,6 +172,7 @@ namespace armarx::armem::clazz
         armarx::toAron(dto.meshObjPath, bo.meshObjPath);
         armarx::toAron(dto.aabb, bo.aabb);
         armarx::toAron(dto.oobb, bo.oobb);
+        toAron(dto.names, bo.names);
         dto.ivtFeatures.clear();
         for (const auto& i : bo.ivtFeatures)
         {
@@ -174,7 +180,7 @@ namespace armarx::armem::clazz
         }
     }
 
-} // namespace armarx::armem::clazz
+} // namespace armarx::armem
 
 armarx::armem::MemoryID
 armarx::armem::obj::makeObjectInstanceMemoryID(const objpose::ObjectPose& objectPose)
diff --git a/source/RobotAPI/libraries/armem_objects/aron_conversions.h b/source/RobotAPI/libraries/armem_objects/aron_conversions.h
index b61164a5d6a7de07bd8ba3761117e263ac714949..a41c7ccf43a9d5050cad2488c6369d0c28b3772d 100644
--- a/source/RobotAPI/libraries/armem_objects/aron_conversions.h
+++ b/source/RobotAPI/libraries/armem_objects/aron_conversions.h
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <RobotAPI/libraries/ArmarXObjects/ObjectPose.h>
+#include <RobotAPI/libraries/armem/core/MemoryID.h>
 #include <RobotAPI/libraries/armem_objects/aron/Attachment.aron.generated.h>
 #include <RobotAPI/libraries/armem_objects/aron/Marker.aron.generated.h>
 #include <RobotAPI/libraries/armem_objects/aron/ObjectClass.aron.generated.h>
@@ -32,6 +33,7 @@ namespace armarx::armem
 
     void fromAron(const arondto::Marker& dto, marker::Marker& bo);
     void toAron(arondto::Marker& dto, const marker::Marker& bo);
+
 } // namespace armarx::armem
 
 namespace armarx::armem::clazz
@@ -44,10 +46,9 @@ namespace armarx::armem::clazz
 
 } // namespace armarx::armem::clazz
 
-#include <RobotAPI/libraries/armem/core/MemoryID.h>
-
 namespace armarx::armem::obj
 {
     /// Make a Memory ID for the object instance snapshot representing this pose.
     MemoryID makeObjectInstanceMemoryID(const objpose::ObjectPose& objectPose);
+
 } // namespace armarx::armem::obj
diff --git a/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.cpp b/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.cpp
index bceba7d960ffbe41a620c36d47a5d8fc0897c157..aa16a8441f8d7421804f8068eb2113b808be3194 100644
--- a/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.cpp
+++ b/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.cpp
@@ -1,5 +1,9 @@
 #include "ClassReader.h"
 
+#include <RobotAPI/libraries/armem/client/query.h>
+#include <RobotAPI/libraries/armem_objects/aron_conversions.h>
+#include <RobotAPI/libraries/armem_objects/types.h>
+
 namespace armarx::armem::obj::clazz
 {
     std::optional<armem::clazz::ObjectClass>
@@ -27,6 +31,42 @@ namespace armarx::armem::obj::clazz
         return std::nullopt;
     }
 
+    std::map<ObjectID, armem::clazz::ObjectClass>
+    ClassReader::getObjectClasses(const std::vector<ObjectID>& objectIDs)
+    {
+        armem::client::query::Builder builder;
+        auto entities = builder.coreSegments()
+                            .withName(properties().coreSegmentName)
+                            .providerSegments()
+                            .all()
+                            .entities();
+
+        for (const ObjectID& objectID : objectIDs)
+        {
+            entities.withName(objectID.getClassID().str()).snapshots().latest();
+        }
+
+        const armem::client::QueryResult result = memoryReader().query(builder);
+        if (not result.success)
+        {
+            throw armem::error::QueryFailed(result.errorMessage);
+        }
+
+        std::map<ObjectID, armem::clazz::ObjectClass> objectClasses;
+
+        result.memory.forEachInstance(
+            [&objectClasses](const armem::wm::EntityInstance& instance) -> bool
+            {
+                const ObjectID classID = ObjectID::FromString(instance.id().entityName);
+                auto aron = instance.dataAs<armarx::armem::arondto::ObjectClass>();
+                armarx::armem::clazz::fromAron(aron, objectClasses[classID]);
+
+                return true;
+            });
+
+        return objectClasses;
+    }
+
     std::string
     ClassReader::propertyPrefix() const
     {
diff --git a/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.h b/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.h
index 4d2805b4f03e81bb6b58b65d73997eeae56755ab..8dd50018a7483d7ce645475dd49f3dd840fe8f75 100644
--- a/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.h
+++ b/source/RobotAPI/libraries/armem_objects/client/class/ClassReader.h
@@ -21,11 +21,10 @@
 
 #pragma once
 
-#include <mutex>
+#include <map>
 #include <optional>
 
 #include <RobotAPI/libraries/armem/client/util/SimpleReaderBase.h>
-#include <RobotAPI/libraries/armem_objects/aron_conversions.h>
 #include <RobotAPI/libraries/armem_objects/types.h>
 
 namespace armarx::armem::obj::clazz
@@ -38,11 +37,18 @@ namespace armarx::armem::obj::clazz
         std::optional<armem::clazz::ObjectClass> getObjectClass(const std::string& providerName,
                                                                 const armarx::ObjectID& id);
 
+        /**
+         * @brief Get object class information for object class IDs.
+         * @param objectIDs The object class IDs.
+         * @return The corresponding object classes.
+         * @throw armarx::armem::error::QueryFailed If the memory query failed.
+         */
+        std::map<armarx::ObjectID, armem::clazz::ObjectClass>
+        getObjectClasses(const std::vector<armarx::ObjectID>& objectIDs);
+
     protected:
         std::string propertyPrefix() const final;
         Properties defaultProperties() const final;
-
-    private:
     };
 
 
diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
index c841afc4dc6afe2629802871399944a0ef39da04..5506ddbf598ed92ac11522769b9e7b0734d20162 100644
--- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
@@ -1,51 +1,55 @@
 #include "Segment.h"
 
-#include <RobotAPI/libraries/aron/core/Exception.h>
-#include <RobotAPI/libraries/aron/common/aron_conversions.h>
-#include <RobotAPI/libraries/ArmarXObjects/aron_conversions.h>
-#include <RobotAPI/libraries/armem/server/MemoryToIceAdapter.h>
-#include <RobotAPI/libraries/armem_objects/aron_conversions.h>
-#include <RobotAPI/libraries/armem_objects/memory_ids.h>
-#include <RobotAPI/libraries/armem_objects/aron/ObjectClass.aron.generated.h>
-
-#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
-#include <ArmarXCore/core/time/TimeUtil.h>
+#include <filesystem>
 
 #include <SimoxUtility/color/Color.h>
 #include <SimoxUtility/math/pose/pose.h>
 #include <SimoxUtility/shapes/AxisAlignedBoundingBox.h>
 #include <SimoxUtility/shapes/OrientedBox.h>
 
-#include <filesystem>
+#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
+#include <ArmarXCore/core/time/TimeUtil.h>
 
+#include <RobotAPI/libraries/ArmarXObjects/aron_conversions.h>
+#include <RobotAPI/libraries/armem/server/MemoryToIceAdapter.h>
+#include <RobotAPI/libraries/armem_objects/aron/ObjectClass.aron.generated.h>
+#include <RobotAPI/libraries/armem_objects/aron_conversions.h>
+#include <RobotAPI/libraries/armem_objects/memory_ids.h>
+#include <RobotAPI/libraries/aron/common/aron_conversions.h>
+#include <RobotAPI/libraries/aron/core/Exception.h>
 
 namespace armarx::armem::server::obj::clazz
 {
 
     Segment::Segment(armem::server::MemoryToIceAdapter& memoryToIceAdapter) :
-        SpecializedCoreSegment(memoryToIceAdapter, objects::classSegmentID.coreSegmentName, arondto::ObjectClass::ToAronType(), -1)
+        SpecializedCoreSegment(memoryToIceAdapter,
+                               objects::classSegmentID.coreSegmentName,
+                               arondto::ObjectClass::ToAronType(),
+                               -1)
     {
     }
 
-
     Segment::~Segment()
     {
     }
 
-
-    void Segment::defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix)
+    void
+    Segment::defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix)
     {
         SpecializedCoreSegment::defineProperties(defs, prefix);
 
-        defs->optional(p.objectsPackage, prefix + "ObjectsPackage", "Name of the objects package to load from.");
-        defs->optional(p.loadFromObjectsPackage, prefix + "LoadFromObjectsPackage",
+        defs->optional(p.objectsPackage,
+                       prefix + "ObjectsPackage",
+                       "Name of the objects package to load from.");
+        defs->optional(p.loadFromObjectsPackage,
+                       prefix + "LoadFromObjectsPackage",
                        "If true, load the objects from the objects package on startup.");
 
         floorVis.defineProperties(defs, prefix + "Floor.");
     }
 
-
-    void Segment::init()
+    void
+    Segment::init()
     {
         SpecializedCoreSegment::init();
 
@@ -55,8 +59,8 @@ namespace armarx::armem::server::obj::clazz
         }
     }
 
-
-    void Segment::connect(viz::Client arviz)
+    void
+    Segment::connect(viz::Client arviz)
     {
         this->arviz = arviz;
 
@@ -64,28 +68,29 @@ namespace armarx::armem::server::obj::clazz
         floorVis.updateFloorObject(*segmentPtr);
     }
 
-
-    void Segment::loadByObjectFinder(const std::string& objectsPackage)
+    void
+    Segment::loadByObjectFinder(const std::string& objectsPackage)
     {
         loadByObjectFinder(ObjectFinder(objectsPackage));
     }
 
-
-    void Segment::loadByObjectFinder(const ObjectFinder& finder)
+    void
+    Segment::loadByObjectFinder(const ObjectFinder& finder)
     {
         this->objectFinder = finder;
         loadByObjectFinder();
     }
 
-
-    void Segment::loadByObjectFinder()
+    void
+    Segment::loadByObjectFinder()
     {
         const Time now = Time::Now();
 
         const bool checkPaths = false;
         std::vector<ObjectInfo> infos = objectFinder.findAllObjects(checkPaths);
 
-        const MemoryID providerID = segmentPtr->id().withProviderSegmentName(objectFinder.getPackageName());
+        const MemoryID providerID =
+            segmentPtr->id().withProviderSegmentName(objectFinder.getPackageName());
         ARMARX_INFO << "Loading up to " << infos.size() << " object classes from '"
                     << objectFinder.getPackageName() << "' ...";
         Commit commit;
@@ -98,18 +103,15 @@ namespace armarx::armem::server::obj::clazz
             update.arrivedTime = update.referencedTime = update.sentTime = now;
 
             arondto::ObjectClass objectClass = objectClassFromInfo(info);
-            update.instancesData =
-            {
-                objectClass.toAron()
-            };
+            update.instancesData = {objectClass.toAron()};
         }
         ARMARX_INFO << "Loaded " << commit.updates.size() << " object classes from '"
                     << objectFinder.getPackageName() << "'.";
         iceMemory.commitLocking(commit);
     }
 
-
-    void Segment::visualizeClass(const MemoryID& entityID, bool showAABB, bool showOOBB)
+    void
+    Segment::visualizeClass(const MemoryID& entityID, bool showAABB, bool showOOBB)
     {
         const Eigen::Matrix4f pose = Eigen::Matrix4f::Identity();
 
@@ -124,10 +126,11 @@ namespace armarx::armem::server::obj::clazz
         {
             try
             {
-                std::optional<arondto::ObjectClass> aron = doLocked([this, &entityID]()
-                {
-                    return segmentPtr->findLatestInstanceDataAs<arondto::ObjectClass>(entityID, 0);
-                });
+                std::optional<arondto::ObjectClass> aron = doLocked(
+                    [this, &entityID]() {
+                        return segmentPtr->findLatestInstanceDataAs<arondto::ObjectClass>(entityID,
+                                                                                          0);
+                    });
                 if (not aron.has_value())
                 {
                     return;
@@ -136,23 +139,24 @@ namespace armarx::armem::server::obj::clazz
                 if (not aron->simoxXmlPath.package.empty())
                 {
                     layerObject.add(viz::Object(entityID.str())
-                                    .file(aron->simoxXmlPath.package, aron->simoxXmlPath.path)
-                                    .pose(pose));
+                                        .file(aron->simoxXmlPath.package, aron->simoxXmlPath.path)
+                                        .pose(pose));
                 }
 
                 if (showAABB)
                 {
                     layerAABB.add(viz::Box("AABB")
-                                  .pose(pose * simox::math::pose(aron->aabb.center))
-                                  .size(aron->aabb.extents)
-                                  .color(simox::Color::cyan(255, 64)));
+                                      .pose(pose * simox::math::pose(aron->aabb.center))
+                                      .size(aron->aabb.extents)
+                                      .color(simox::Color::cyan(255, 64)));
                 }
                 if (showOOBB)
                 {
                     layerOOBB.add(viz::Box("OOBB")
-                                  .pose(pose * simox::math::pose(aron->oobb.center, aron->oobb.orientation))
-                                  .size(aron->oobb.extents)
-                                  .color(simox::Color::lime(255, 64)));
+                                      .pose(pose * simox::math::pose(aron->oobb.center,
+                                                                     aron->oobb.orientation))
+                                      .size(aron->oobb.extents)
+                                      .color(simox::Color::lime(255, 64)));
                 }
             }
             catch (const armem::error::ArMemError& e)
@@ -170,16 +174,16 @@ namespace armarx::armem::server::obj::clazz
         arviz.commit({layerObject, layerOrigin, layerAABB, layerOOBB});
     }
 
-
-    arondto::ObjectClass Segment::objectClassFromInfo(const ObjectInfo& info)
+    arondto::ObjectClass
+    Segment::objectClassFromInfo(const ObjectInfo& info)
     {
         namespace fs = std::filesystem;
 
         arondto::ObjectClass data;
         toAron(data.id, info.id());
 
-        auto setPathIfExists = [](armarx::arondto::PackagePath & aron,
-                                  const PackageFileLocation & location)
+        auto setPathIfExists =
+            [](armarx::arondto::PackagePath& aron, const PackageFileLocation& location)
         {
             if (fs::is_regular_file(location.absolutePath))
             {
@@ -206,18 +210,18 @@ namespace armarx::armem::server::obj::clazz
 
         if (auto recogNames = info.loadRecognizedNames())
         {
-            data.names.recognizedNames = recogNames.value();
+            data.names.recognized = recogNames.value();
         }
         if (auto spokenNames = info.loadSpokenNames())
         {
-            data.names.spokenNames = spokenNames.value();
+            data.names.spoken = spokenNames.value();
         }
 
         return data;
     }
 
-
-    void Segment::RemoteGui::setup(const Segment& segment)
+    void
+    Segment::RemoteGui::setup(const Segment& segment)
     {
         using namespace armarx::RemoteGui::Client;
 
@@ -232,15 +236,15 @@ namespace armarx::armem::server::obj::clazz
         group.addChildren({layout, VSpacer()});
     }
 
-
-    void Segment::RemoteGui::update(Segment& segment)
+    void
+    Segment::RemoteGui::update(Segment& segment)
     {
         data.update(segment);
         visu.update(segment);
     }
 
-
-    void Segment::RemoteGui::Data::setup(const Segment& segment)
+    void
+    Segment::RemoteGui::Data::setup(const Segment& segment)
     {
         using namespace armarx::RemoteGui::Client;
 
@@ -264,8 +268,8 @@ namespace armarx::armem::server::obj::clazz
         group.addChild(grid);
     }
 
-
-    void Segment::RemoteGui::Data::update(Segment& segment)
+    void
+    Segment::RemoteGui::Data::update(Segment& segment)
     {
         if (reloadButton.wasClicked())
         {
@@ -275,31 +279,35 @@ namespace armarx::armem::server::obj::clazz
         }
         if (infiniteHistory.hasValueChanged() || maxHistorySize.hasValueChanged())
         {
-            segment.doLocked([this, &segment]()
-            {
-                segment.properties.maxHistorySize = infiniteHistory.getValue() ? -1 : maxHistorySize.getValue();
-                if (segment.segmentPtr)
+            segment.doLocked(
+                [this, &segment]()
                 {
-                    segment.segmentPtr->setMaxHistorySize(long(segment.properties.maxHistorySize));
-                }
-            });
+                    segment.properties.maxHistorySize =
+                        infiniteHistory.getValue() ? -1 : maxHistorySize.getValue();
+                    if (segment.segmentPtr)
+                    {
+                        segment.segmentPtr->setMaxHistorySize(
+                            long(segment.properties.maxHistorySize));
+                    }
+                });
         }
     }
 
-
-    void Segment::RemoteGui::Visu::setup(const Segment& segment)
+    void
+    Segment::RemoteGui::Visu::setup(const Segment& segment)
     {
         using namespace armarx::RemoteGui::Client;
 
         showComboBox = {};
         showOptionsIndex.clear();
-        segment.segmentPtr->forEachEntity([this](const wm::Entity & entity)
-        {
-            std::stringstream option;
-            option << entity.id().entityName << " (" << entity.id().providerSegmentName << ")";
-            showComboBox.addOption(option.str());
-            showOptionsIndex.push_back(entity.id());
-        });
+        segment.segmentPtr->forEachEntity(
+            [this](const wm::Entity& entity)
+            {
+                std::stringstream option;
+                option << entity.id().entityName << " (" << entity.id().providerSegmentName << ")";
+                showComboBox.addOption(option.str());
+                showOptionsIndex.push_back(entity.id());
+            });
         if (showOptionsIndex.empty())
         {
             showComboBox.addOption("<none>");
@@ -318,8 +326,8 @@ namespace armarx::armem::server::obj::clazz
         group.addChild(grid);
     }
 
-
-    void Segment::RemoteGui::Visu::update(Segment& segment)
+    void
+    Segment::RemoteGui::Visu::update(Segment& segment)
     {
         if (showButton.wasClicked())
         {
@@ -331,4 +339,4 @@ namespace armarx::armem::server::obj::clazz
         }
     }
 
-}
+} // namespace armarx::armem::server::obj::clazz
diff --git a/source/RobotAPI/libraries/armem_objects/types.h b/source/RobotAPI/libraries/armem_objects/types.h
index 598c78ca9c6bc5f4fc007059352ee94fc28b2fec..564bf3b460a06e036cd33b481541f4d41119cf25 100644
--- a/source/RobotAPI/libraries/armem_objects/types.h
+++ b/source/RobotAPI/libraries/armem_objects/types.h
@@ -30,6 +30,7 @@
 #include <RobotAPI/libraries/armem/core/Time.h>
 #include <RobotAPI/libraries/armem_robot/types.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/core/Names.h>
 
 #include "aron_forward_declarations.h"
 
@@ -67,7 +68,7 @@ namespace armarx::armem::clazz
         armarx::PackagePath meshObjPath;
         simox::AxisAlignedBoundingBox aabb;
         simox::OrientedBoxf oobb;
-        // TODO NAMES
+        armarx::Names names;
         std::vector<Feature> ivtFeatures;
     };
 } // namespace armarx::armem::clazz