From a31d6a39ff34c10318569702703b074c69c37de9 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Tue, 26 Jan 2021 08:51:39 +0100
Subject: [PATCH] Move files and update includes

---
 .../ArMemExampleClient/ArMemExampleClient.cpp |  10 +-
 .../ArMemExampleClient/ArMemExampleClient.h   |   2 +-
 .../ArMemExampleMemory/ArMemExampleMemory.cpp |   4 +-
 .../ArMemExampleMemory/ArMemExampleMemory.h   |   4 +-
 .../ArMemMemoryNameSystem.cpp                 |   2 +-
 .../ArMemMemoryViewerWidgetController.cpp     |   2 +-
 .../RobotAPI/libraries/armem/CMakeLists.txt   | 145 ++++++++--------
 .../armem/client/ComponentPlugin.cpp          |   2 +-
 .../RobotAPI/libraries/armem/client/Query.cpp |   2 +-
 .../RobotAPI/libraries/armem/client/Query.h   |   2 +-
 .../libraries/armem/client/Reader.cpp         |   6 +-
 .../RobotAPI/libraries/armem/client/Reader.h  |   2 +-
 .../armem/client/ReaderComponentPlugin.cpp    |   2 +-
 .../armem/client/WriterComponentPlugin.cpp    |   2 +-
 .../{QueryBuilder.cpp => query/Builder.cpp}   |  18 +-
 .../{QueryBuilder.h => query/Builder.h}       |  23 +--
 .../libraries/armem/client/query/selectors.h  |   4 +-
 .../armem/{memory => core}/CoreSegment.cpp    |   2 +-
 .../armem/{memory => core}/CoreSegment.h      |   0
 .../armem/{memory => core}/Entity.cpp         |   2 +-
 .../libraries/armem/{memory => core}/Entity.h |   0
 .../armem/{memory => core}/EntityInstance.cpp |   0
 .../armem/{memory => core}/EntityInstance.h   |   0
 .../armem/{memory => core}/EntitySnapshot.cpp |   2 +-
 .../armem/{memory => core}/EntitySnapshot.h   |   0
 .../armem/{memory => core}/InternalCommit.cpp |   0
 .../armem/{memory => core}/InternalCommit.h   |   0
 .../armem/{memory => core}/Memory.cpp         |   2 +-
 .../libraries/armem/{memory => core}/Memory.h |   0
 .../libraries/armem/core/MemoryID.cpp         |   2 +-
 .../{memory => core}/ProviderSegment.cpp      |   2 +-
 .../armem/{memory => core}/ProviderSegment.h  |   0
 .../armem/{ => core}/aron/MemoryID.xml        |   0
 .../detail/EntityContainer.cpp                |   0
 .../{memory => core}/detail/EntityContainer.h |   2 +-
 .../detail/MemoryContainer.cpp                |   0
 .../{memory => core}/detail/MemoryContainer.h |   0
 .../{memory => core}/detail/MemoryItem.cpp    |   0
 .../{memory => core}/detail/MemoryItem.h      |   0
 .../detail/TypedEntityContainer.h             |   0
 .../libraries/armem/{ => core}/error.h        |   0
 .../armem/{ => core}/error/ArMemError.cpp     |   0
 .../armem/{ => core}/error/ArMemError.h       |   2 +-
 .../libraries/armem/core/ice_conversions.cpp  | 160 ++++++++++++++++++
 .../libraries/armem/core/ice_conversions.h    |  51 ++++++
 .../io/DiskReader/DiskReader.cpp              |   4 +
 .../{ltm => core}/io/DiskReader/DiskReader.h  |   5 +-
 .../NlohmannJSONDiskReader.cpp                |   0
 .../NlohmannJSONDiskReader.h                  |   2 +-
 .../armem/{ltm => core}/io/DiskReaderWriter.h |   8 +-
 .../io/DiskWriter/DiskWriter.cpp              |   0
 .../{ltm => core}/io/DiskWriter/DiskWriter.h  |  14 +-
 .../NlohmannJSONDiskWriter.cpp                |   0
 .../NlohmannJSONDiskWriter.h                  |   6 +-
 .../{ltm => core/io}/FileSystemLookupMemory.h |   2 +-
 .../io}/MemoryFileSystemStorage.cpp           |   0
 .../io}/MemoryFileSystemStorage.h             |  21 ++-
 .../armem/memory/ice_conversions.cpp          | 160 ------------------
 .../libraries/armem/memory/ice_conversions.h  |  48 ------
 .../MemoryComponentPlugin.cpp                 |   0
 .../MemoryComponentPlugin.h                   |   2 +-
 .../{component => server}/MemoryRemoteGui.cpp |   0
 .../{component => server}/MemoryRemoteGui.h   |   2 +-
 .../MemoryToIceAdapter.cpp                    |   4 +-
 .../MemoryToIceAdapter.h                      |   2 +-
 .../RemoteGuiAronDataVisitor.cpp              |   0
 .../RemoteGuiAronDataVisitor.h                |   0
 .../libraries/armem/{ => server}/query.h      |   0
 .../{ => server}/query/BaseQueryProcessor.cpp |   5 +-
 .../{ => server}/query/BaseQueryProcessor.h   |   4 +-
 .../query/CoreSegmentQueryProcessor.cpp       |   5 +-
 .../query/CoreSegmentQueryProcessor.h         |   3 +-
 .../query/EntityQueryProcessor.cpp            |   5 +-
 .../{ => server}/query/EntityQueryProcessor.h |   3 +-
 .../query/MemoryQueryProcessor.cpp            |   5 +-
 .../{ => server}/query/MemoryQueryProcessor.h |   3 +-
 .../query/ProviderSegmentQueryProcessor.cpp   |   5 +-
 .../query/ProviderSegmentQueryProcessor.h     |   3 +-
 .../armem/test/ArMemIceConversionsTest.cpp    |   2 +-
 .../libraries/armem/test/ArMemLTMTest.cpp     |   6 +-
 .../libraries/armem/test/ArMemMemoryTest.cpp  |   4 +-
 .../armem/test/ArMemQueryBuilderTest.cpp      |   8 +-
 .../libraries/armem/test/ArMemQueryTest.cpp   |   2 +-
 .../libraries/armem_gui/InstanceTreeWidget.h  |   2 +-
 .../libraries/armem_gui/MemoryTreeWidget.h    |   2 +-
 .../armem_gui/query_widgets/QueryWidget.cpp   |   2 +-
 .../armem_gui/query_widgets/QueryWidget.h     |   2 +-
 .../armem_gui/query_widgets/SnapshotForm.cpp  |   2 +-
 .../armem_gui/query_widgets/SnapshotForm.h    |   2 +-
 .../query_widgets/SnapshotSelectorWidget.h    |   2 +-
 90 files changed, 413 insertions(+), 403 deletions(-)
 rename source/RobotAPI/libraries/armem/client/{QueryBuilder.cpp => query/Builder.cpp} (51%)
 rename source/RobotAPI/libraries/armem/client/{QueryBuilder.h => query/Builder.h} (52%)
 rename source/RobotAPI/libraries/armem/{memory => core}/CoreSegment.cpp (99%)
 rename source/RobotAPI/libraries/armem/{memory => core}/CoreSegment.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/Entity.cpp (99%)
 rename source/RobotAPI/libraries/armem/{memory => core}/Entity.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/EntityInstance.cpp (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/EntityInstance.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/EntitySnapshot.cpp (99%)
 rename source/RobotAPI/libraries/armem/{memory => core}/EntitySnapshot.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/InternalCommit.cpp (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/InternalCommit.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/Memory.cpp (99%)
 rename source/RobotAPI/libraries/armem/{memory => core}/Memory.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/ProviderSegment.cpp (99%)
 rename source/RobotAPI/libraries/armem/{memory => core}/ProviderSegment.h (100%)
 rename source/RobotAPI/libraries/armem/{ => core}/aron/MemoryID.xml (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/EntityContainer.cpp (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/EntityContainer.h (99%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/MemoryContainer.cpp (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/MemoryContainer.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/MemoryItem.cpp (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/MemoryItem.h (100%)
 rename source/RobotAPI/libraries/armem/{memory => core}/detail/TypedEntityContainer.h (100%)
 rename source/RobotAPI/libraries/armem/{ => core}/error.h (100%)
 rename source/RobotAPI/libraries/armem/{ => core}/error/ArMemError.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ => core}/error/ArMemError.h (99%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskReader/DiskReader.cpp (99%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskReader/DiskReader.h (94%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h (97%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskReaderWriter.h (94%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskWriter/DiskWriter.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskWriter/DiskWriter.h (94%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ltm => core}/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h (97%)
 rename source/RobotAPI/libraries/armem/{ltm => core/io}/FileSystemLookupMemory.h (98%)
 rename source/RobotAPI/libraries/armem/{ltm => core/io}/MemoryFileSystemStorage.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ltm => core/io}/MemoryFileSystemStorage.h (72%)
 delete mode 100644 source/RobotAPI/libraries/armem/memory/ice_conversions.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/memory/ice_conversions.h
 rename source/RobotAPI/libraries/armem/{component => server}/MemoryComponentPlugin.cpp (100%)
 rename source/RobotAPI/libraries/armem/{component => server}/MemoryComponentPlugin.h (98%)
 rename source/RobotAPI/libraries/armem/{component => server}/MemoryRemoteGui.cpp (100%)
 rename source/RobotAPI/libraries/armem/{component => server}/MemoryRemoteGui.h (97%)
 rename source/RobotAPI/libraries/armem/{component => server}/MemoryToIceAdapter.cpp (98%)
 rename source/RobotAPI/libraries/armem/{component => server}/MemoryToIceAdapter.h (97%)
 rename source/RobotAPI/libraries/armem/{component => server}/RemoteGuiAronDataVisitor.cpp (100%)
 rename source/RobotAPI/libraries/armem/{component => server}/RemoteGuiAronDataVisitor.h (100%)
 rename source/RobotAPI/libraries/armem/{ => server}/query.h (100%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/BaseQueryProcessor.cpp (61%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/BaseQueryProcessor.h (93%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/CoreSegmentQueryProcessor.cpp (96%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/CoreSegmentQueryProcessor.h (94%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/EntityQueryProcessor.cpp (97%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/EntityQueryProcessor.h (95%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/MemoryQueryProcessor.cpp (96%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/MemoryQueryProcessor.h (95%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/ProviderSegmentQueryProcessor.cpp (96%)
 rename source/RobotAPI/libraries/armem/{ => server}/query/ProviderSegmentQueryProcessor.h (95%)

diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp
index a2b7c1566..a5c5ddc0c 100644
--- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp
+++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp
@@ -25,9 +25,9 @@
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 #include <ArmarXCore/core/time/CycleUtil.h>
 
-#include <RobotAPI/libraries/armem/component/MemoryRemoteGui.h>
-#include <RobotAPI/libraries/armem/client/QueryBuilder.h>
-#include <RobotAPI/libraries/armem/memory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h>
+#include <RobotAPI/libraries/armem/client/query/Builder.h>
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 #include <RobotAPI/components/armem/ArMemExampleMemory/aron/ExampleData.aron.generated.h>
 
@@ -204,7 +204,7 @@ namespace armarx
                 << "\n- snapshotID:     \t'" << snapshotID << "'"
                 ;
 
-        armem::client::QueryBuilder qb;
+        armem::client::query::Builder qb;
         qb
         .coreSegments().withID(snapshotID)
         .providerSegments().withID(snapshotID)
@@ -396,7 +396,7 @@ namespace armarx
     void ArMemExampleClient::queryExampleData()
     {
         // Query all entities from provider.
-        armem::client::QueryBuilder qb;
+        armem::client::query::Builder qb;
         qb
         .coreSegments().withID(providerID)
         .providerSegments().withID(providerID)
diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
index 157b8ec2f..07401d4c4 100644
--- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
+++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
@@ -34,7 +34,7 @@
 #include <RobotAPI/interface/armem/MemoryInterface.h>
 #include <RobotAPI/interface/armem/MemoryNameSystemInterface.h>
 #include <RobotAPI/libraries/armem/client/ComponentPlugin.h>
-#include <RobotAPI/libraries/armem/memory/Memory.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 
 namespace armarx
diff --git a/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.cpp b/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.cpp
index e52591c31..3e61638a4 100644
--- a/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.cpp
+++ b/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.cpp
@@ -26,8 +26,8 @@
 
 #include <SimoxUtility/algorithm/string.h>
 
-#include <RobotAPI/libraries/armem/error/ArMemError.h>
-#include <RobotAPI/libraries/armem/component/MemoryRemoteGui.h>
+#include <RobotAPI/libraries/armem/core/error.h>
+#include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h>
 
 #include <RobotAPI/components/armem/ArMemExampleMemory/aron/ExampleData.aron.generated.h>
 
diff --git a/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.h b/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.h
index 7a6289438..443984268 100644
--- a/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.h
+++ b/source/RobotAPI/components/armem/ArMemExampleMemory/ArMemExampleMemory.h
@@ -31,8 +31,8 @@
 
 #include <RobotAPI/interface/armem/MemoryInterface.h>
 
-#include <RobotAPI/libraries/armem/memory/Memory.h>
-#include <RobotAPI/libraries/armem/component/MemoryComponentPlugin.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
+#include <RobotAPI/libraries/armem/server/MemoryComponentPlugin.h>
 
 
 namespace armarx
diff --git a/source/RobotAPI/components/armem/ArMemMemoryNameSystem/ArMemMemoryNameSystem.cpp b/source/RobotAPI/components/armem/ArMemMemoryNameSystem/ArMemMemoryNameSystem.cpp
index 7059bcc42..22c9235a3 100644
--- a/source/RobotAPI/components/armem/ArMemMemoryNameSystem/ArMemMemoryNameSystem.cpp
+++ b/source/RobotAPI/components/armem/ArMemMemoryNameSystem/ArMemMemoryNameSystem.cpp
@@ -26,7 +26,7 @@
 
 #include <SimoxUtility/algorithm/string.h>
 
-#include <RobotAPI/libraries/armem/error/ArMemError.h>
+#include <RobotAPI/libraries/armem/core/error.h>
 
 
 namespace armarx
diff --git a/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp b/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp
index 0d6ba10f9..833a82a54 100644
--- a/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp
@@ -29,7 +29,7 @@
 
 #include <ArmarXCore/observers/variant/Variant.h>
 
-#include <RobotAPI/libraries/armem/memory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 #include <RobotAPI/libraries/armem_gui/QTreeWidgetAronDataVisitor.h>
 
 
diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt
index 33e61ee43..4d8d4d3d6 100644
--- a/source/RobotAPI/libraries/armem/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem/CMakeLists.txt
@@ -11,7 +11,7 @@ set(LIBS
 )
 
 set(ARON_FILES
-    aron/MemoryID.xml
+    core/aron/MemoryID.xml
 )
 
 set(LIB_FILES
@@ -21,25 +21,23 @@ set(LIB_FILES
     core/Time.cpp
     core/ice_conversions.cpp
 
-    error/ArMemError.cpp
-
-    memory/CoreSegment.cpp
-    memory/Entity.cpp
-    memory/EntityInstance.cpp
-    memory/EntitySnapshot.cpp
-    memory/ice_conversions.cpp
-    memory/InternalCommit.cpp
-    memory/Memory.cpp
-    memory/ProviderSegment.cpp
+    core/CoreSegment.cpp
+    core/Entity.cpp
+    core/EntityInstance.cpp
+    core/EntitySnapshot.cpp
+    core/ice_conversions.cpp
+    core/InternalCommit.cpp
+    core/Memory.cpp
+    core/ProviderSegment.cpp
+    core/detail/MemoryItem.cpp
 
-    # memory/detail/EntityContainer.cpp
-    # memory/detail/MemoryContainer.cpp
-    memory/detail/MemoryItem.cpp
-    # memory/detail/TypedEntityContainer.cpp
+    core/error/ArMemError.cpp
 
-    mns/MemoryNameSystem.cpp
-    mns/MemoryNameSystemClientPlugin.cpp
-    mns/MemoryNameSystemComponentPlugin.cpp
+    core/io/MemoryFileSystemStorage.cpp
+    core/io/DiskWriter/DiskWriter.cpp
+    core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
+    core/io/DiskReader/DiskReader.cpp
+    core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
 
     client/ComponentPlugin.cpp
     client/Reader.cpp
@@ -48,25 +46,23 @@ set(LIB_FILES
     client/WriterComponentPlugin.cpp
 
     client/Query.cpp
-    client/QueryBuilder.cpp
+    client/query/Builder.cpp
     client/query/selectors.cpp
 
-    component/MemoryToIceAdapter.cpp
-    component/MemoryComponentPlugin.cpp
-    component/MemoryRemoteGui.cpp
-    component/RemoteGuiAronDataVisitor.cpp
-
-    query/BaseQueryProcessor.cpp
-    query/EntityQueryProcessor.cpp
-    query/ProviderSegmentQueryProcessor.cpp
-    query/CoreSegmentQueryProcessor.cpp
-    query/MemoryQueryProcessor.cpp
-
-    ltm/MemoryFileSystemStorage.cpp
-    ltm/io/DiskWriter/DiskWriter.cpp
-    ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
-    ltm/io/DiskReader/DiskReader.cpp
-    ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
+    server/MemoryToIceAdapter.cpp
+    server/MemoryComponentPlugin.cpp
+    server/MemoryRemoteGui.cpp
+    server/RemoteGuiAronDataVisitor.cpp
+
+    server/query/BaseQueryProcessor.cpp
+    server/query/EntityQueryProcessor.cpp
+    server/query/ProviderSegmentQueryProcessor.cpp
+    server/query/CoreSegmentQueryProcessor.cpp
+    server/query/MemoryQueryProcessor.cpp
+
+    mns/MemoryNameSystem.cpp
+    mns/MemoryNameSystemClientPlugin.cpp
+    mns/MemoryNameSystemComponentPlugin.cpp
 )
 
 set(LIB_HEADERS
@@ -78,26 +74,30 @@ set(LIB_HEADERS
     core/ice_conversions.h
     core/ice_conversions_templates.h
 
-    error.h
-    error/ArMemError.h
-
-    memory/CoreSegment.h
-    memory/Entity.h
-    memory/EntityInstance.h
-    memory/EntitySnapshot.h
-    memory/ice_conversions.h
-    memory/InternalCommit.h
-    memory/Memory.h
-    memory/ProviderSegment.h
+    core/error.h
+    core/error/ArMemError.h
 
-    memory/detail/EntityContainer.h
-    memory/detail/MemoryContainer.h
-    memory/detail/MemoryItem.h
-    memory/detail/TypedEntityContainer.h
-
-    mns/MemoryNameSystem.h
-    mns/MemoryNameSystemClientPlugin.h
-    mns/MemoryNameSystemComponentPlugin.h
+    core/CoreSegment.h
+    core/Entity.h
+    core/EntityInstance.h
+    core/EntitySnapshot.h
+    core/ice_conversions.h
+    core/InternalCommit.h
+    core/Memory.h
+    core/ProviderSegment.h
+
+    core/detail/EntityContainer.h
+    core/detail/MemoryContainer.h
+    core/detail/MemoryItem.h
+    core/detail/TypedEntityContainer.h
+
+    core/io/FileSystemLookupMemory.h
+    core/io/MemoryFileSystemStorage.h
+    core/io/DiskReaderWriter.h
+    core/io/DiskWriter/DiskWriter.h
+    core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
+    core/io/DiskReader/DiskReader.h
+    core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
 
     client/ComponentPlugin.h
     client/Reader.h
@@ -106,31 +106,28 @@ set(LIB_HEADERS
     client/WriterComponentPlugin.h
 
     client/Query.h
-    client/QueryBuilder.h
+    client/query/Builder.h
     client/query/NameSelectorOps.h
     client/query/SelectorOps.h
     client/query/query_fns.h
     client/query/selectors.h
 
-    component/MemoryToIceAdapter.h
-    component/MemoryComponentPlugin.h
-    component/MemoryRemoteGui.h
-    component/RemoteGuiAronDataVisitor.h
-
-    query.h
-    query/BaseQueryProcessor.h
-    query/EntityQueryProcessor.h
-    query/ProviderSegmentQueryProcessor.h
-    query/CoreSegmentQueryProcessor.h
-    query/MemoryQueryProcessor.h
-
-    ltm/FileSystemLookupMemory.h
-    ltm/MemoryFileSystemStorage.h
-    ltm/io/DiskReaderWriter.h
-    ltm/io/DiskWriter/DiskWriter.h
-    ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
-    ltm/io/DiskReader/DiskReader.h
-    ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
+    server/MemoryToIceAdapter.h
+    server/MemoryComponentPlugin.h
+    server/MemoryRemoteGui.h
+    server/RemoteGuiAronDataVisitor.h
+
+    server/query.h
+    server/query/BaseQueryProcessor.h
+    server/query/EntityQueryProcessor.h
+    server/query/ProviderSegmentQueryProcessor.h
+    server/query/CoreSegmentQueryProcessor.h
+    server/query/MemoryQueryProcessor.h
+
+    mns/MemoryNameSystem.h
+    mns/MemoryNameSystemClientPlugin.h
+    mns/MemoryNameSystemComponentPlugin.h
+
 )
 
 armarx_add_library("${LIB_NAME}" "${LIB_FILES}" "${LIB_HEADERS}" "${LIBS}")
diff --git a/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp
index 853e41cf6..891715eb4 100644
--- a/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp
@@ -5,7 +5,7 @@
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 // RobotAPI
-#include <RobotAPI/libraries/armem/error.h>
+#include <RobotAPI/libraries/armem/core/error.h>
 
 
 armarx::armem::client::ComponentPluginUser::ComponentPluginUser()
diff --git a/source/RobotAPI/libraries/armem/client/Query.cpp b/source/RobotAPI/libraries/armem/client/Query.cpp
index 84ff14968..04672937b 100644
--- a/source/RobotAPI/libraries/armem/client/Query.cpp
+++ b/source/RobotAPI/libraries/armem/client/Query.cpp
@@ -1,6 +1,6 @@
 #include "Query.h"
 
-#include "../memory/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 
 namespace armarx::armem::client
diff --git a/source/RobotAPI/libraries/armem/client/Query.h b/source/RobotAPI/libraries/armem/client/Query.h
index a894221f3..8519c7d34 100644
--- a/source/RobotAPI/libraries/armem/client/Query.h
+++ b/source/RobotAPI/libraries/armem/client/Query.h
@@ -6,7 +6,7 @@
 #include <RobotAPI/libraries/armem/core/ice_conversions.h>
 #include <RobotAPI/libraries/armem/core/SuccessHeader.h>
 #include <RobotAPI/libraries/armem/core/DataMode.h>
-#include <RobotAPI/libraries/armem/memory/Memory.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 
 namespace armarx::armem::client
diff --git a/source/RobotAPI/libraries/armem/client/Reader.cpp b/source/RobotAPI/libraries/armem/client/Reader.cpp
index 558703dcc..9c3364781 100644
--- a/source/RobotAPI/libraries/armem/client/Reader.cpp
+++ b/source/RobotAPI/libraries/armem/client/Reader.cpp
@@ -2,7 +2,7 @@
 
 #include <ArmarXCore/core/logging/Logging.h>
 
-#include "QueryBuilder.h"
+#include "query/Builder.h"
 #include "query/query_fns.h"
 
 
@@ -65,7 +65,7 @@ namespace armarx::armem::client
     {
         using namespace client::query_fns;
 
-        QueryBuilder qb(dataMode);
+        query::Builder qb(dataMode);
         qb.coreSegments(all()).providerSegments(all()).entities(all()).snapshots(all());
 
         return this->query(qb.buildQueryInput());
@@ -75,7 +75,7 @@ namespace armarx::armem::client
     {
         using namespace client::query_fns;
 
-        QueryBuilder qb(dataMode);
+        query::Builder qb(dataMode);
         qb.coreSegments(all()).providerSegments(all()).entities(all()).snapshots(latest());
 
         return this->query(qb.buildQueryInput());
diff --git a/source/RobotAPI/libraries/armem/client/Reader.h b/source/RobotAPI/libraries/armem/client/Reader.h
index 2a7e4f4c1..f0265f5f4 100644
--- a/source/RobotAPI/libraries/armem/client/Reader.h
+++ b/source/RobotAPI/libraries/armem/client/Reader.h
@@ -10,7 +10,7 @@
 #include <RobotAPI/interface/armem/ReadingMemoryInterface.h>
 #include <RobotAPI/interface/armem/MemoryListenerInterface.h>
 #include <RobotAPI/libraries/armem/core/ice_conversions.h>
-#include <RobotAPI/libraries/armem/memory/Memory.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 #include "Query.h"
 
diff --git a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp
index fca6d9442..22804ae0e 100644
--- a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp
@@ -5,7 +5,7 @@
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 // RobotAPI
-#include <RobotAPI/libraries/armem/error.h>
+#include <RobotAPI/libraries/armem/core/error.h>
 
 
 armarx::armem::client::ReaderComponentPlugin::~ReaderComponentPlugin()
diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp
index 5ed4dc1f7..bb192af20 100644
--- a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp
@@ -5,7 +5,7 @@
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 // RobotAPI
-#include <RobotAPI/libraries/armem/error.h>
+#include <RobotAPI/libraries/armem/core/error.h>
 
 
 armarx::armem::client::WriterComponentPlugin::~WriterComponentPlugin()
diff --git a/source/RobotAPI/libraries/armem/client/QueryBuilder.cpp b/source/RobotAPI/libraries/armem/client/query/Builder.cpp
similarity index 51%
rename from source/RobotAPI/libraries/armem/client/QueryBuilder.cpp
rename to source/RobotAPI/libraries/armem/client/query/Builder.cpp
index 9eb55bfc9..261bd706a 100644
--- a/source/RobotAPI/libraries/armem/client/QueryBuilder.cpp
+++ b/source/RobotAPI/libraries/armem/client/query/Builder.cpp
@@ -1,29 +1,29 @@
-#include "QueryBuilder.h"
+#include "Builder.h"
 
 
-namespace armarx::armem::client
+namespace armarx::armem::client::query
 {
 
-    QueryBuilder::QueryBuilder(DataMode dataMode) : dataMode(dataMode)
+    Builder::Builder(DataMode dataMode) : dataMode(dataMode)
     {
     }
 
-    QueryInput QueryBuilder::buildQueryInput() const
+    QueryInput Builder::buildQueryInput() const
     {
         QueryInput input;
         input.memoryQueries = buildMemoryQueries();
         input.dataMode = dataMode;
         return input;
     }
-    data::QueryInput QueryBuilder::buildQueryInputIce() const
+    data::QueryInput Builder::buildQueryInputIce() const
     {
         return buildQueryInput().toIce();
     }
 
-    data::query::MemoryQuerySeq QueryBuilder::buildMemoryQueries() const
+    data::query::MemoryQuerySeq Builder::buildMemoryQueries() const
     {
         data::query::MemoryQuerySeq memoryQueries;
-        for (const query::CoreSegmentSelector& child : _children)
+        for (const CoreSegmentSelector& child : _children)
         {
             for (const data::query::MemoryQueryPtr& query : child.buildQueries())
             {
@@ -34,12 +34,12 @@ namespace armarx::armem::client
     }
 
 
-    query::CoreSegmentSelector& QueryBuilder::coreSegments()
+    CoreSegmentSelector& Builder::coreSegments()
     {
         return _addChild();
     }
 
-    query::CoreSegmentSelector& QueryBuilder::coreSegments(const query::CoreSegmentSelector& selector)
+    CoreSegmentSelector& Builder::coreSegments(const CoreSegmentSelector& selector)
     {
         return _addChild(selector);
     }
diff --git a/source/RobotAPI/libraries/armem/client/QueryBuilder.h b/source/RobotAPI/libraries/armem/client/query/Builder.h
similarity index 52%
rename from source/RobotAPI/libraries/armem/client/QueryBuilder.h
rename to source/RobotAPI/libraries/armem/client/query/Builder.h
index 2e38d0986..df41a8d44 100644
--- a/source/RobotAPI/libraries/armem/client/QueryBuilder.h
+++ b/source/RobotAPI/libraries/armem/client/query/Builder.h
@@ -2,17 +2,18 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "../core/DataMode.h"
-#include "Query.h"
-#include "query/selectors.h"
+#include <RobotAPI/libraries/armem/core/DataMode.h>
+#include <RobotAPI/libraries/armem/client/Query.h>
 
+#include "selectors.h"
 
-namespace armarx::armem::client
+
+namespace armarx::armem::client::query
 {
 
     // ToDo: Make a memory selector (but this level is not in ice, yet)
     /**
-     * @brief The QueryBuilder class provides a fluent-style specification of
+     * @brief The query::Builder class provides a fluent-style specification of
      * hierarchical queries.
      *
      * Syntax:
@@ -21,20 +22,20 @@ namespace armarx::armem::client
      * TODO
      * @endcode
      */
-    class QueryBuilder :
-        public query::detail::ParentSelectorOps<QueryBuilder, query::CoreSegmentSelector>
+    class Builder :
+        public detail::ParentSelectorOps<Builder, CoreSegmentSelector>
     {
     public:
 
-        QueryBuilder(DataMode dataMode = DataMode::WithData);
+        Builder(DataMode dataMode = DataMode::WithData);
 
 
         /// Start specifying core segments.
-        query::CoreSegmentSelector& coreSegments();
-        query::CoreSegmentSelector& coreSegments(const query::CoreSegmentSelector& selector);
+        CoreSegmentSelector& coreSegments();
+        CoreSegmentSelector& coreSegments(const CoreSegmentSelector& selector);
 
         template <class ...Ts>
-        query::CoreSegmentSelector& coreSegments(Ts... args)
+        CoreSegmentSelector& coreSegments(Ts... args)
         {
             return _addChild(args...);
         }
diff --git a/source/RobotAPI/libraries/armem/client/query/selectors.h b/source/RobotAPI/libraries/armem/client/query/selectors.h
index 9a9ce825a..da45029b4 100644
--- a/source/RobotAPI/libraries/armem/client/query/selectors.h
+++ b/source/RobotAPI/libraries/armem/client/query/selectors.h
@@ -8,9 +8,9 @@
 #include "SelectorOps.h"
 
 
-namespace armarx::armem::client
+namespace armarx::armem::client::query
 {
-    class QueryBuilder;
+    class Builder;
 }
 
 namespace armarx::armem::client::query
diff --git a/source/RobotAPI/libraries/armem/memory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/CoreSegment.cpp
similarity index 99%
rename from source/RobotAPI/libraries/armem/memory/CoreSegment.cpp
rename to source/RobotAPI/libraries/armem/core/CoreSegment.cpp
index cf618d66f..f66ccd662 100644
--- a/source/RobotAPI/libraries/armem/memory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/CoreSegment.cpp
@@ -2,7 +2,7 @@
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
+#include "error.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/memory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/CoreSegment.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/CoreSegment.h
rename to source/RobotAPI/libraries/armem/core/CoreSegment.h
diff --git a/source/RobotAPI/libraries/armem/memory/Entity.cpp b/source/RobotAPI/libraries/armem/core/Entity.cpp
similarity index 99%
rename from source/RobotAPI/libraries/armem/memory/Entity.cpp
rename to source/RobotAPI/libraries/armem/core/Entity.cpp
index 7b5b4208b..4cd1955aa 100644
--- a/source/RobotAPI/libraries/armem/memory/Entity.cpp
+++ b/source/RobotAPI/libraries/armem/core/Entity.cpp
@@ -4,7 +4,7 @@
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error.h"
+#include "error.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/memory/Entity.h b/source/RobotAPI/libraries/armem/core/Entity.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/Entity.h
rename to source/RobotAPI/libraries/armem/core/Entity.h
diff --git a/source/RobotAPI/libraries/armem/memory/EntityInstance.cpp b/source/RobotAPI/libraries/armem/core/EntityInstance.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/EntityInstance.cpp
rename to source/RobotAPI/libraries/armem/core/EntityInstance.cpp
diff --git a/source/RobotAPI/libraries/armem/memory/EntityInstance.h b/source/RobotAPI/libraries/armem/core/EntityInstance.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/EntityInstance.h
rename to source/RobotAPI/libraries/armem/core/EntityInstance.h
diff --git a/source/RobotAPI/libraries/armem/memory/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/core/EntitySnapshot.cpp
similarity index 99%
rename from source/RobotAPI/libraries/armem/memory/EntitySnapshot.cpp
rename to source/RobotAPI/libraries/armem/core/EntitySnapshot.cpp
index cbc5d7ef0..0b974ca70 100644
--- a/source/RobotAPI/libraries/armem/memory/EntitySnapshot.cpp
+++ b/source/RobotAPI/libraries/armem/core/EntitySnapshot.cpp
@@ -2,7 +2,7 @@
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error.h"
+#include "error.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/memory/EntitySnapshot.h b/source/RobotAPI/libraries/armem/core/EntitySnapshot.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/EntitySnapshot.h
rename to source/RobotAPI/libraries/armem/core/EntitySnapshot.h
diff --git a/source/RobotAPI/libraries/armem/memory/InternalCommit.cpp b/source/RobotAPI/libraries/armem/core/InternalCommit.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/InternalCommit.cpp
rename to source/RobotAPI/libraries/armem/core/InternalCommit.cpp
diff --git a/source/RobotAPI/libraries/armem/memory/InternalCommit.h b/source/RobotAPI/libraries/armem/core/InternalCommit.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/InternalCommit.h
rename to source/RobotAPI/libraries/armem/core/InternalCommit.h
diff --git a/source/RobotAPI/libraries/armem/memory/Memory.cpp b/source/RobotAPI/libraries/armem/core/Memory.cpp
similarity index 99%
rename from source/RobotAPI/libraries/armem/memory/Memory.cpp
rename to source/RobotAPI/libraries/armem/core/Memory.cpp
index 9157597ab..f074823f1 100644
--- a/source/RobotAPI/libraries/armem/memory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/Memory.cpp
@@ -3,7 +3,7 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
+#include "error.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/memory/Memory.h b/source/RobotAPI/libraries/armem/core/Memory.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/Memory.h
rename to source/RobotAPI/libraries/armem/core/Memory.h
diff --git a/source/RobotAPI/libraries/armem/core/MemoryID.cpp b/source/RobotAPI/libraries/armem/core/MemoryID.cpp
index 493a7fb2c..d1ab27e90 100644
--- a/source/RobotAPI/libraries/armem/core/MemoryID.cpp
+++ b/source/RobotAPI/libraries/armem/core/MemoryID.cpp
@@ -2,7 +2,7 @@
 
 #include <SimoxUtility/algorithm/string.h>
 
-#include "../error/ArMemError.h"
+#include "error/ArMemError.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/memory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/ProviderSegment.cpp
similarity index 99%
rename from source/RobotAPI/libraries/armem/memory/ProviderSegment.cpp
rename to source/RobotAPI/libraries/armem/core/ProviderSegment.cpp
index ca772cc4b..23c8fee80 100644
--- a/source/RobotAPI/libraries/armem/memory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/ProviderSegment.cpp
@@ -2,7 +2,7 @@
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
+#include "error.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/memory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/ProviderSegment.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/ProviderSegment.h
rename to source/RobotAPI/libraries/armem/core/ProviderSegment.h
diff --git a/source/RobotAPI/libraries/armem/aron/MemoryID.xml b/source/RobotAPI/libraries/armem/core/aron/MemoryID.xml
similarity index 100%
rename from source/RobotAPI/libraries/armem/aron/MemoryID.xml
rename to source/RobotAPI/libraries/armem/core/aron/MemoryID.xml
diff --git a/source/RobotAPI/libraries/armem/memory/detail/EntityContainer.cpp b/source/RobotAPI/libraries/armem/core/detail/EntityContainer.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/detail/EntityContainer.cpp
rename to source/RobotAPI/libraries/armem/core/detail/EntityContainer.cpp
diff --git a/source/RobotAPI/libraries/armem/memory/detail/EntityContainer.h b/source/RobotAPI/libraries/armem/core/detail/EntityContainer.h
similarity index 99%
rename from source/RobotAPI/libraries/armem/memory/detail/EntityContainer.h
rename to source/RobotAPI/libraries/armem/core/detail/EntityContainer.h
index 3a19b887c..3a68208a4 100644
--- a/source/RobotAPI/libraries/armem/memory/detail/EntityContainer.h
+++ b/source/RobotAPI/libraries/armem/core/detail/EntityContainer.h
@@ -3,7 +3,7 @@
 #include "../InternalCommit.h"
 #include "../Entity.h"
 #include "../EntitySnapshot.h"
-#include "../../error/ArMemError.h"
+#include "../error/ArMemError.h"
 
 #include "MemoryContainer.h"
 
diff --git a/source/RobotAPI/libraries/armem/memory/detail/MemoryContainer.cpp b/source/RobotAPI/libraries/armem/core/detail/MemoryContainer.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/detail/MemoryContainer.cpp
rename to source/RobotAPI/libraries/armem/core/detail/MemoryContainer.cpp
diff --git a/source/RobotAPI/libraries/armem/memory/detail/MemoryContainer.h b/source/RobotAPI/libraries/armem/core/detail/MemoryContainer.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/detail/MemoryContainer.h
rename to source/RobotAPI/libraries/armem/core/detail/MemoryContainer.h
diff --git a/source/RobotAPI/libraries/armem/memory/detail/MemoryItem.cpp b/source/RobotAPI/libraries/armem/core/detail/MemoryItem.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/detail/MemoryItem.cpp
rename to source/RobotAPI/libraries/armem/core/detail/MemoryItem.cpp
diff --git a/source/RobotAPI/libraries/armem/memory/detail/MemoryItem.h b/source/RobotAPI/libraries/armem/core/detail/MemoryItem.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/detail/MemoryItem.h
rename to source/RobotAPI/libraries/armem/core/detail/MemoryItem.h
diff --git a/source/RobotAPI/libraries/armem/memory/detail/TypedEntityContainer.h b/source/RobotAPI/libraries/armem/core/detail/TypedEntityContainer.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/memory/detail/TypedEntityContainer.h
rename to source/RobotAPI/libraries/armem/core/detail/TypedEntityContainer.h
diff --git a/source/RobotAPI/libraries/armem/error.h b/source/RobotAPI/libraries/armem/core/error.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/error.h
rename to source/RobotAPI/libraries/armem/core/error.h
diff --git a/source/RobotAPI/libraries/armem/error/ArMemError.cpp b/source/RobotAPI/libraries/armem/core/error/ArMemError.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/error/ArMemError.cpp
rename to source/RobotAPI/libraries/armem/core/error/ArMemError.cpp
diff --git a/source/RobotAPI/libraries/armem/error/ArMemError.h b/source/RobotAPI/libraries/armem/core/error/ArMemError.h
similarity index 99%
rename from source/RobotAPI/libraries/armem/error/ArMemError.h
rename to source/RobotAPI/libraries/armem/core/error/ArMemError.h
index c3c6a1b57..ce301206d 100644
--- a/source/RobotAPI/libraries/armem/error/ArMemError.h
+++ b/source/RobotAPI/libraries/armem/core/error/ArMemError.h
@@ -3,7 +3,7 @@
 #include <stdexcept>
 #include <SimoxUtility/meta/type_name.h>
 
-#include "../core/MemoryID.h"
+#include "../MemoryID.h"
 
 
 namespace armarx::armem::error
diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/ice_conversions.cpp
index d354077fa..3bda0238c 100644
--- a/source/RobotAPI/libraries/armem/core/ice_conversions.cpp
+++ b/source/RobotAPI/libraries/armem/core/ice_conversions.cpp
@@ -132,3 +132,163 @@ namespace armarx
 
 
 
+#include "ice_conversions.h"
+
+
+namespace armarx
+{
+
+    void armem::fromIce(const data::Commit& ice, InternalCommit& commit, Time timeArrived)
+    {
+        commit.updates.clear();
+        for (const auto& ice_update : ice.updates)
+        {
+            InternalEntityUpdate& update = commit.updates.emplace_back(InternalEntityUpdate());
+            fromIce(ice_update, update, timeArrived);
+        }
+    }
+
+
+    void armem::fromIce(const data::EntityUpdate& ice, InternalEntityUpdate& update, Time timeArrived)
+    {
+        armem::fromIce(ice, update);
+        update.timeArrived = timeArrived;
+    }
+
+
+    void armem::detail::toIceItem(data::detail::MemoryItem& ice, const MemoryItem& item)
+    {
+        toIce(ice.id, item.id());
+    }
+
+    void armem::detail::fromIceItem(const data::detail::MemoryItem& ice, MemoryItem& item)
+    {
+        fromIce(ice.id, item.id());
+    }
+
+
+    void armem::toIce(data::EntityInstanceMetadata& ice, const EntityInstanceMetadata& metadata)
+    {
+        ice.confidence = metadata.confidence;
+        toIce(ice.timeArrivedMicroSeconds, metadata.timeArrived);
+        toIce(ice.timeCreatedMicroSeconds, metadata.timeCreated);
+        toIce(ice.timeSentMicroSeconds, metadata.timeSent);
+    }
+    void armem::fromIce(const data::EntityInstanceMetadata& ice, EntityInstanceMetadata& metadata)
+    {
+        metadata.confidence = ice.confidence;
+        fromIce(ice.timeArrivedMicroSeconds, metadata.timeArrived);
+        fromIce(ice.timeCreatedMicroSeconds, metadata.timeCreated);
+        fromIce(ice.timeSentMicroSeconds, metadata.timeSent);
+    }
+
+    void armem::toIce(data::EntityInstance& ice, const EntityInstance& data)
+    {
+        detail::toIceItem(ice, data);
+
+        if (data.data())
+        {
+            ice.data = data.data()->toAronDictPtr();
+        }
+        toIce(ice.metadata, data.metadata());
+    }
+    void armem::fromIce(const data::EntityInstance& ice, EntityInstance& data)
+    {
+        detail::fromIceItem(ice, data);
+
+        if (ice.data)
+        {
+            data.setData(aron::datanavigator::AronDictDataNavigator::FromAronDictPtr(ice.data));
+        }
+        fromIce(ice.metadata, data.metadata());
+    }
+
+
+    void armem::toIce(data::EntitySnapshot& ice, const EntitySnapshot& snapshot)
+    {
+        detail::toIceItem(ice, snapshot);
+
+        toIce(ice.instances, snapshot.instances);
+    }
+    void armem::fromIce(const data::EntitySnapshot& ice, EntitySnapshot& snapshot)
+    {
+        detail::fromIceItem(ice, snapshot);
+
+        fromIce(ice.instances, snapshot.instances);
+    }
+
+    void armem::toIce(data::Entity& ice, const Entity& entity)
+    {
+        detail::toIceItem(ice, entity);
+
+        toIce(ice.history, entity.history);
+    }
+    void armem::fromIce(const data::Entity& ice, Entity& entity)
+    {
+        detail::fromIceItem(ice, entity);
+
+        fromIce(ice.history, entity.history);
+    }
+
+
+    void armem::toIce(data::ProviderSegment& ice, const ProviderSegment& providerSegment)
+    {
+        detail::toIceItem(ice, providerSegment);
+
+        if (providerSegment.hasAronType())
+        {
+            ice.aronType = providerSegment.aronType()->getResult();
+        }
+        toIce(ice.entities, providerSegment.entities);
+    }
+    void armem::fromIce(const data::ProviderSegment& ice, ProviderSegment& providerSegment)
+    {
+        detail::fromIceItem(ice, providerSegment);
+
+        if (ice.aronType)
+        {
+            providerSegment.aronType() = aron::typenavigator::AronObjectTypeNavigator::DynamicCastAndCheck(
+                                             aron::typenavigator::AronTypeNavigator::FromAronType(ice.aronType)
+                                         );
+        }
+        fromIce(ice.entities, providerSegment.entities);
+    }
+
+    void armem::toIce(data::CoreSegment& ice, const CoreSegment& coreSegment)
+    {
+        detail::toIceItem(ice, coreSegment);
+
+        if (coreSegment.hasAronType())
+        {
+            ice.aronType = coreSegment.aronType()->getResult();
+        }
+        toIce(ice.providerSegments, coreSegment.providerSegments);
+    }
+    void armem::fromIce(const data::CoreSegment& ice, CoreSegment& coreSegment)
+    {
+        detail::fromIceItem(ice, coreSegment);
+
+        if (ice.aronType)
+        {
+            coreSegment.aronType() = aron::typenavigator::AronObjectTypeNavigator::DynamicCastAndCheck(
+                                         aron::typenavigator::AronTypeNavigator::FromAronType(ice.aronType)
+                                     );
+        }
+        fromIce(ice.providerSegments, coreSegment.providerSegments);
+    }
+
+    void armem::toIce(data::Memory& ice, const Memory& memory)
+    {
+        detail::toIceItem(ice, memory);
+
+        toIce(ice.coreSegments, memory.coreSegments);
+    }
+    void armem::fromIce(const data::Memory& ice, Memory& memory)
+    {
+        detail::fromIceItem(ice, memory);
+
+        fromIce(ice.coreSegments, memory.coreSegments);
+    }
+
+}
+
diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions.h b/source/RobotAPI/libraries/armem/core/ice_conversions.h
index 3485a8d52..942700884 100644
--- a/source/RobotAPI/libraries/armem/core/ice_conversions.h
+++ b/source/RobotAPI/libraries/armem/core/ice_conversions.h
@@ -46,3 +46,54 @@ namespace armarx::armem
     void toIce(data::EntityUpdateResult& ice, const EntityUpdateResult& result);
 
 }
+
+
+#pragma once
+
+#include <RobotAPI/interface/armem/memory.h>
+
+#include "../core/ice_conversions.h"
+
+#include "InternalCommit.h"
+#include "Memory.h"
+
+
+namespace armarx::armem
+{
+
+    void fromIce(const data::Commit& ice, InternalCommit& commit, Time timeArrived);
+    void fromIce(const data::EntityUpdate& ice, InternalEntityUpdate& update, Time timeArrived);
+
+
+    void toIce(data::EntityInstanceMetadata& ice, const EntityInstanceMetadata& metadata);
+    void fromIce(const data::EntityInstanceMetadata& ice, EntityInstanceMetadata& metadata);
+
+    void toIce(data::EntityInstance& ice, const EntityInstance& data);
+    void fromIce(const data::EntityInstance& ice, EntityInstance& data);
+
+
+    void toIce(data::EntitySnapshot& ice, const EntitySnapshot& snapshot);
+    void fromIce(const data::EntitySnapshot& ice, EntitySnapshot& snapshot);
+
+    void toIce(data::Entity& ice, const Entity& entity);
+    void fromIce(const data::Entity& ice, Entity& entity);
+
+
+    void toIce(data::ProviderSegment& ice, const ProviderSegment& providerSegment);
+    void fromIce(const data::ProviderSegment& ice, ProviderSegment& providerSegment);
+
+    void toIce(data::CoreSegment& ice, const CoreSegment& coreSegment);
+    void fromIce(const data::CoreSegment& ice, CoreSegment& coreSegment);
+
+    void toIce(data::Memory& ice, const Memory& memory);
+    void fromIce(const data::Memory& ice, Memory& memory);
+
+
+    namespace detail
+    {
+        void toIceItem(data::detail::MemoryItem& ice, const MemoryItem& item);
+        void fromIceItem(const data::detail::MemoryItem& ice, MemoryItem& item);
+    }
+
+}
+
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.cpp b/source/RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.cpp
similarity index 99%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.cpp
rename to source/RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.cpp
index 380501513..df63ab589 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.cpp
+++ b/source/RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.cpp
@@ -36,6 +36,10 @@ namespace armarx::armem
             {
             }
 
+            DiskReader::~DiskReader()
+            {
+            }
+
             FileSystemLookupMemoryManager DiskReader::readMemoryStructureFromDisk()
             {
                 FileSystemLookupMemoryManager ret;
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h b/source/RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.h
similarity index 94%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h
rename to source/RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.h
index 249b9c4aa..af23d4e06 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h
+++ b/source/RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.h
@@ -29,7 +29,7 @@
 #include <filesystem>
 
 // BaseClass
-#include <RobotAPI/libraries/armem/ltm/io/DiskReaderWriter.h>
+#include <RobotAPI/libraries/armem/core/io/DiskReaderWriter.h>
 
 // ArmarX
 #include <RobotAPI/interface/aron.h>
@@ -42,7 +42,7 @@
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/classWriters/NavigatorWriter/AronTypeNavigatorWriter.h>
 
-#include <RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h>
+#include <RobotAPI/libraries/armem/core/io/FileSystemLookupMemory.h>
 
 
 
@@ -61,6 +61,7 @@ namespace armarx::armem
             public:
                 DiskReader(bool createFolder);
                 DiskReader(const std::string&, bool createFolder);
+                virtual ~DiskReader();
 
                 FileSystemLookupMemoryManager readMemoryStructureFromDisk();
                 FileSystemLookupMemoryManager readMemoryStructureFromDisk(const std::string&);
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp b/source/RobotAPI/libraries/armem/core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
rename to source/RobotAPI/libraries/armem/core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h b/source/RobotAPI/libraries/armem/core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
similarity index 97%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
rename to source/RobotAPI/libraries/armem/core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
index d78539ae0..1bb0cd106 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
+++ b/source/RobotAPI/libraries/armem/core/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h
@@ -25,7 +25,7 @@
 #include <string>
 
 // Base Class
-#include <RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h>
+#include <RobotAPI/libraries/armem/core/io/DiskReader/DiskReader.h>
 
 // ArmarX
 #include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/classReaders/NlohmannJSONReader/AronDataNlohmannJSONReader.h>
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReaderWriter.h b/source/RobotAPI/libraries/armem/core/io/DiskReaderWriter.h
similarity index 94%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskReaderWriter.h
rename to source/RobotAPI/libraries/armem/core/io/DiskReaderWriter.h
index 497d4374c..56dc4afaf 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskReaderWriter.h
+++ b/source/RobotAPI/libraries/armem/core/io/DiskReaderWriter.h
@@ -31,10 +31,10 @@
 // ArmarX
 #include <RobotAPI/interface/aron.h>
 
-#include <RobotAPI/libraries/armem/error.h>
-#include <RobotAPI/libraries/armem/memory/Memory.h>
-#include <RobotAPI/libraries/armem/memory/CoreSegment.h>
-#include <RobotAPI/libraries/armem/memory/Entity.h>
+#include <RobotAPI/libraries/armem/core/error.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
+#include <RobotAPI/libraries/armem/core/CoreSegment.h>
+#include <RobotAPI/libraries/armem/core/Entity.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.cpp b/source/RobotAPI/libraries/armem/core/io/DiskWriter/DiskWriter.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.cpp
rename to source/RobotAPI/libraries/armem/core/io/DiskWriter/DiskWriter.cpp
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h b/source/RobotAPI/libraries/armem/core/io/DiskWriter/DiskWriter.h
similarity index 94%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h
rename to source/RobotAPI/libraries/armem/core/io/DiskWriter/DiskWriter.h
index acb38e1f8..4b02e8615 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h
+++ b/source/RobotAPI/libraries/armem/core/io/DiskWriter/DiskWriter.h
@@ -28,9 +28,6 @@
 #include <iostream>
 #include <filesystem>
 
-// BaseClass
-#include <RobotAPI/libraries/armem/ltm/io/DiskReaderWriter.h>
-
 // ArmarX
 #include <RobotAPI/interface/aron.h>
 #include <RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronAllDataNavigators.h>
@@ -41,11 +38,14 @@
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriter.h>
 
-#include <RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h>
 
-#include <RobotAPI/libraries/armem/memory/Memory.h>
-#include <RobotAPI/libraries/armem/memory/CoreSegment.h>
-#include <RobotAPI/libraries/armem/memory/Entity.h>
+// BaseClass
+#include "../DiskReaderWriter.h"
+#include "../FileSystemLookupMemory.h"
+
+#include <RobotAPI/libraries/armem/core/Memory.h>
+#include <RobotAPI/libraries/armem/core/CoreSegment.h>
+#include <RobotAPI/libraries/armem/core/Entity.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp b/source/RobotAPI/libraries/armem/core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
rename to source/RobotAPI/libraries/armem/core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h b/source/RobotAPI/libraries/armem/core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
similarity index 97%
rename from source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
rename to source/RobotAPI/libraries/armem/core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
index 95b83bd8a..d4e4e57fe 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
+++ b/source/RobotAPI/libraries/armem/core/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h
@@ -24,13 +24,13 @@
 #include <memory>
 #include <string>
 
-// Base Class
-#include <RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h>
-
 // ArmarX
 #include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/classWriters/NlohmannJSONWriter/AronDataNlohmannJSONWriter.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/classWriters/NlohmannJSONWriter/AronTypeNlohmannJSONWriter.h>
 
+// Base Class
+#include "../DiskWriter.h"
+
 
 namespace armarx::armem
 {
diff --git a/source/RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h b/source/RobotAPI/libraries/armem/core/io/FileSystemLookupMemory.h
similarity index 98%
rename from source/RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h
rename to source/RobotAPI/libraries/armem/core/io/FileSystemLookupMemory.h
index 1267af661..7e20fdf08 100644
--- a/source/RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h
+++ b/source/RobotAPI/libraries/armem/core/io/FileSystemLookupMemory.h
@@ -26,7 +26,7 @@
 #include <filesystem>
 
 // ArmarX
-#include <RobotAPI/libraries/armem/memory/Memory.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.cpp b/source/RobotAPI/libraries/armem/core/io/MemoryFileSystemStorage.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.cpp
rename to source/RobotAPI/libraries/armem/core/io/MemoryFileSystemStorage.cpp
diff --git a/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.h b/source/RobotAPI/libraries/armem/core/io/MemoryFileSystemStorage.h
similarity index 72%
rename from source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.h
rename to source/RobotAPI/libraries/armem/core/io/MemoryFileSystemStorage.h
index 499fed293..8ba3480ac 100644
--- a/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.h
+++ b/source/RobotAPI/libraries/armem/core/io/MemoryFileSystemStorage.h
@@ -26,11 +26,13 @@
 
 // ArmarX
 #include <RobotAPI/interface/aron.h>
-#include <RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h>
-#include <RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h>
 
-#include <RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h>
-#include <RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h>
+#include "../Memory.h"
+
+#include "DiskWriter/DiskWriter.h"
+#include "DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.h"
+#include "DiskReader/DiskReader.h"
+#include "DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.h"
 
 
 namespace armarx::armem
@@ -51,8 +53,19 @@ namespace armarx::armem
             void writeOnDisk(const MemoryID&, const CoreSegment&);
             void writeOnDisk(const MemoryID&, const ProviderSegment&);
             void writeOnDisk(const MemoryID&, const Entity&);
+            // void writeOnDisk(const MemoryID&, const Entity&, aron::typenavigator::AronObjectTypeNavigatorPtr = nullptr);
             void writeOnDisk(const MemoryID&, const EntitySnapshot&);
 
+            Memory readMemoryFromDisk();
+            CoreSegment readCoreSegmentFromDisk();
+            ProviderSegment readFromDisk();
+            Entity readEntityFromDisk();
+            EntitySnapshot readEntitySnapshotFromDisk();
+
+            std::pair<Entity, aron::typenavigator::AronObjectTypeNavigatorPtr> readTypedEntityFromDisk();
+            std::pair<EntitySnapshot, aron::typenavigator::AronObjectTypeNavigatorPtr> readTypedEntitySnapshotFromDisk();
+
+
             void updateInternalMemoryFromFileSystem();
             EntityPtr getEntityFromFileSystem(const MemoryID&);
 
diff --git a/source/RobotAPI/libraries/armem/memory/ice_conversions.cpp b/source/RobotAPI/libraries/armem/memory/ice_conversions.cpp
deleted file mode 100644
index 9019aac9e..000000000
--- a/source/RobotAPI/libraries/armem/memory/ice_conversions.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-#include "ice_conversions.h"
-
-
-namespace armarx
-{
-
-    void armem::fromIce(const data::Commit& ice, InternalCommit& commit, Time timeArrived)
-    {
-        commit.updates.clear();
-        for (const auto& ice_update : ice.updates)
-        {
-            InternalEntityUpdate& update = commit.updates.emplace_back(InternalEntityUpdate());
-            fromIce(ice_update, update, timeArrived);
-        }
-    }
-
-
-    void armem::fromIce(const data::EntityUpdate& ice, InternalEntityUpdate& update, Time timeArrived)
-    {
-        armem::fromIce(ice, update);
-        update.timeArrived = timeArrived;
-    }
-
-
-    void armem::detail::toIceItem(data::detail::MemoryItem& ice, const MemoryItem& item)
-    {
-        toIce(ice.id, item.id());
-    }
-
-    void armem::detail::fromIceItem(const data::detail::MemoryItem& ice, MemoryItem& item)
-    {
-        fromIce(ice.id, item.id());
-    }
-
-
-    void armem::toIce(data::EntityInstanceMetadata& ice, const EntityInstanceMetadata& metadata)
-    {
-        ice.confidence = metadata.confidence;
-        toIce(ice.timeArrivedMicroSeconds, metadata.timeArrived);
-        toIce(ice.timeCreatedMicroSeconds, metadata.timeCreated);
-        toIce(ice.timeSentMicroSeconds, metadata.timeSent);
-    }
-    void armem::fromIce(const data::EntityInstanceMetadata& ice, EntityInstanceMetadata& metadata)
-    {
-        metadata.confidence = ice.confidence;
-        fromIce(ice.timeArrivedMicroSeconds, metadata.timeArrived);
-        fromIce(ice.timeCreatedMicroSeconds, metadata.timeCreated);
-        fromIce(ice.timeSentMicroSeconds, metadata.timeSent);
-    }
-
-    void armem::toIce(data::EntityInstance& ice, const EntityInstance& data)
-    {
-        detail::toIceItem(ice, data);
-
-        if (data.data())
-        {
-            ice.data = data.data()->toAronDictPtr();
-        }
-        toIce(ice.metadata, data.metadata());
-    }
-    void armem::fromIce(const data::EntityInstance& ice, EntityInstance& data)
-    {
-        detail::fromIceItem(ice, data);
-
-        if (ice.data)
-        {
-            data.setData(aron::datanavigator::AronDictDataNavigator::FromAronDictPtr(ice.data));
-        }
-        fromIce(ice.metadata, data.metadata());
-    }
-
-
-    void armem::toIce(data::EntitySnapshot& ice, const EntitySnapshot& snapshot)
-    {
-        detail::toIceItem(ice, snapshot);
-
-        toIce(ice.instances, snapshot.instances);
-    }
-    void armem::fromIce(const data::EntitySnapshot& ice, EntitySnapshot& snapshot)
-    {
-        detail::fromIceItem(ice, snapshot);
-
-        fromIce(ice.instances, snapshot.instances);
-    }
-
-    void armem::toIce(data::Entity& ice, const Entity& entity)
-    {
-        detail::toIceItem(ice, entity);
-
-        toIce(ice.history, entity.history);
-    }
-    void armem::fromIce(const data::Entity& ice, Entity& entity)
-    {
-        detail::fromIceItem(ice, entity);
-
-        fromIce(ice.history, entity.history);
-    }
-
-
-    void armem::toIce(data::ProviderSegment& ice, const ProviderSegment& providerSegment)
-    {
-        detail::toIceItem(ice, providerSegment);
-
-        if (providerSegment.hasAronType())
-        {
-            ice.aronType = providerSegment.aronType()->getResult();
-        }
-        toIce(ice.entities, providerSegment.entities);
-    }
-    void armem::fromIce(const data::ProviderSegment& ice, ProviderSegment& providerSegment)
-    {
-        detail::fromIceItem(ice, providerSegment);
-
-        if (ice.aronType)
-        {
-            providerSegment.aronType() = aron::typenavigator::AronObjectTypeNavigator::DynamicCastAndCheck(
-                                             aron::typenavigator::AronTypeNavigator::FromAronType(ice.aronType)
-                                         );
-        }
-        fromIce(ice.entities, providerSegment.entities);
-    }
-
-    void armem::toIce(data::CoreSegment& ice, const CoreSegment& coreSegment)
-    {
-        detail::toIceItem(ice, coreSegment);
-
-        if (coreSegment.hasAronType())
-        {
-            ice.aronType = coreSegment.aronType()->getResult();
-        }
-        toIce(ice.providerSegments, coreSegment.providerSegments);
-    }
-    void armem::fromIce(const data::CoreSegment& ice, CoreSegment& coreSegment)
-    {
-        detail::fromIceItem(ice, coreSegment);
-
-        if (ice.aronType)
-        {
-            coreSegment.aronType() = aron::typenavigator::AronObjectTypeNavigator::DynamicCastAndCheck(
-                                         aron::typenavigator::AronTypeNavigator::FromAronType(ice.aronType)
-                                     );
-        }
-        fromIce(ice.providerSegments, coreSegment.providerSegments);
-    }
-
-    void armem::toIce(data::Memory& ice, const Memory& memory)
-    {
-        detail::toIceItem(ice, memory);
-
-        toIce(ice.coreSegments, memory.coreSegments);
-    }
-    void armem::fromIce(const data::Memory& ice, Memory& memory)
-    {
-        detail::fromIceItem(ice, memory);
-
-        fromIce(ice.coreSegments, memory.coreSegments);
-    }
-
-}
-
diff --git a/source/RobotAPI/libraries/armem/memory/ice_conversions.h b/source/RobotAPI/libraries/armem/memory/ice_conversions.h
deleted file mode 100644
index afca2cd4b..000000000
--- a/source/RobotAPI/libraries/armem/memory/ice_conversions.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#pragma once
-
-#include <RobotAPI/interface/armem/memory.h>
-
-#include "../core/ice_conversions.h"
-
-#include "InternalCommit.h"
-#include "Memory.h"
-
-
-namespace armarx::armem
-{
-
-    void fromIce(const data::Commit& ice, InternalCommit& commit, Time timeArrived);
-    void fromIce(const data::EntityUpdate& ice, InternalEntityUpdate& update, Time timeArrived);
-
-
-    void toIce(data::EntityInstanceMetadata& ice, const EntityInstanceMetadata& metadata);
-    void fromIce(const data::EntityInstanceMetadata& ice, EntityInstanceMetadata& metadata);
-
-    void toIce(data::EntityInstance& ice, const EntityInstance& data);
-    void fromIce(const data::EntityInstance& ice, EntityInstance& data);
-
-
-    void toIce(data::EntitySnapshot& ice, const EntitySnapshot& snapshot);
-    void fromIce(const data::EntitySnapshot& ice, EntitySnapshot& snapshot);
-
-    void toIce(data::Entity& ice, const Entity& entity);
-    void fromIce(const data::Entity& ice, Entity& entity);
-
-
-    void toIce(data::ProviderSegment& ice, const ProviderSegment& providerSegment);
-    void fromIce(const data::ProviderSegment& ice, ProviderSegment& providerSegment);
-
-    void toIce(data::CoreSegment& ice, const CoreSegment& coreSegment);
-    void fromIce(const data::CoreSegment& ice, CoreSegment& coreSegment);
-
-    void toIce(data::Memory& ice, const Memory& memory);
-    void fromIce(const data::Memory& ice, Memory& memory);
-
-
-    namespace detail
-    {
-        void toIceItem(data::detail::MemoryItem& ice, const MemoryItem& item);
-        void fromIceItem(const data::detail::MemoryItem& ice, MemoryItem& item);
-    }
-
-}
diff --git a/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.cpp b/source/RobotAPI/libraries/armem/server/MemoryComponentPlugin.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.cpp
rename to source/RobotAPI/libraries/armem/server/MemoryComponentPlugin.cpp
diff --git a/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h b/source/RobotAPI/libraries/armem/server/MemoryComponentPlugin.h
similarity index 98%
rename from source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h
rename to source/RobotAPI/libraries/armem/server/MemoryComponentPlugin.h
index 82aaf5bc8..0c690f8d8 100644
--- a/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryComponentPlugin.h
@@ -8,7 +8,7 @@
 #include <RobotAPI/interface/armem/MemoryListenerInterface.h>
 #include <RobotAPI/interface/armem/MemoryNameSystemInterface.h>
 
-#include "../memory/Memory.h"
+#include "../core/Memory.h"
 #include "../mns/MemoryNameSystemClientPlugin.h"
 #include "MemoryToIceAdapter.h"
 
diff --git a/source/RobotAPI/libraries/armem/component/MemoryRemoteGui.cpp b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/component/MemoryRemoteGui.cpp
rename to source/RobotAPI/libraries/armem/server/MemoryRemoteGui.cpp
diff --git a/source/RobotAPI/libraries/armem/component/MemoryRemoteGui.h b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h
similarity index 97%
rename from source/RobotAPI/libraries/armem/component/MemoryRemoteGui.h
rename to source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h
index 29ccf253b..a53288e90 100644
--- a/source/RobotAPI/libraries/armem/component/MemoryRemoteGui.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h
@@ -2,7 +2,7 @@
 
 #include <ArmarXGui/libraries/RemoteGui/Client/Widgets.h>
 
-#include "../memory/Memory.h"
+#include "../core/Memory.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/component/MemoryToIceAdapter.cpp b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
similarity index 98%
rename from source/RobotAPI/libraries/armem/component/MemoryToIceAdapter.cpp
rename to source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
index 7bee07e7b..b734b1cdd 100644
--- a/source/RobotAPI/libraries/armem/component/MemoryToIceAdapter.cpp
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
@@ -3,8 +3,8 @@
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 #include "../error.h"
-#include "../memory/ice_conversions.h"
-#include "../query/MemoryQueryProcessor.h"
+#include "../core/ice_conversions.h"
+#include "query/MemoryQueryProcessor.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/component/MemoryToIceAdapter.h b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
similarity index 97%
rename from source/RobotAPI/libraries/armem/component/MemoryToIceAdapter.h
rename to source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
index fbd41bd4a..659728cd0 100644
--- a/source/RobotAPI/libraries/armem/component/MemoryToIceAdapter.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
@@ -3,7 +3,7 @@
 #include <RobotAPI/interface/armem/MemoryInterface.h>
 #include <RobotAPI/interface/armem/MemoryListenerInterface.h>
 
-#include "../memory/Memory.h"
+#include "../core/Memory.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/component/RemoteGuiAronDataVisitor.cpp b/source/RobotAPI/libraries/armem/server/RemoteGuiAronDataVisitor.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/component/RemoteGuiAronDataVisitor.cpp
rename to source/RobotAPI/libraries/armem/server/RemoteGuiAronDataVisitor.cpp
diff --git a/source/RobotAPI/libraries/armem/component/RemoteGuiAronDataVisitor.h b/source/RobotAPI/libraries/armem/server/RemoteGuiAronDataVisitor.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/component/RemoteGuiAronDataVisitor.h
rename to source/RobotAPI/libraries/armem/server/RemoteGuiAronDataVisitor.h
diff --git a/source/RobotAPI/libraries/armem/query.h b/source/RobotAPI/libraries/armem/server/query.h
similarity index 100%
rename from source/RobotAPI/libraries/armem/query.h
rename to source/RobotAPI/libraries/armem/server/query.h
diff --git a/source/RobotAPI/libraries/armem/query/BaseQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query/BaseQueryProcessor.cpp
similarity index 61%
rename from source/RobotAPI/libraries/armem/query/BaseQueryProcessor.cpp
rename to source/RobotAPI/libraries/armem/server/query/BaseQueryProcessor.cpp
index aa818cca1..c1ac5e212 100644
--- a/source/RobotAPI/libraries/armem/query/BaseQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query/BaseQueryProcessor.cpp
@@ -3,9 +3,8 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
-
-#include "../core/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/error.h>
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/query/BaseQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query/BaseQueryProcessor.h
similarity index 93%
rename from source/RobotAPI/libraries/armem/query/BaseQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query/BaseQueryProcessor.h
index ce57d99d6..c95ae5c30 100644
--- a/source/RobotAPI/libraries/armem/query/BaseQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query/BaseQueryProcessor.h
@@ -2,8 +2,8 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "../core/DataMode.h"
-#include "../memory/Memory.h"
+#include <RobotAPI/libraries/armem/core/DataMode.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/query/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query/CoreSegmentQueryProcessor.cpp
similarity index 96%
rename from source/RobotAPI/libraries/armem/query/CoreSegmentQueryProcessor.cpp
rename to source/RobotAPI/libraries/armem/server/query/CoreSegmentQueryProcessor.cpp
index 4d3ade1d4..e061c49c9 100644
--- a/source/RobotAPI/libraries/armem/query/CoreSegmentQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query/CoreSegmentQueryProcessor.cpp
@@ -5,9 +5,8 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
-
-#include "../core/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/error.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/query/CoreSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query/CoreSegmentQueryProcessor.h
similarity index 94%
rename from source/RobotAPI/libraries/armem/query/CoreSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query/CoreSegmentQueryProcessor.h
index 497d4ab3e..ea5b5d269 100644
--- a/source/RobotAPI/libraries/armem/query/CoreSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query/CoreSegmentQueryProcessor.h
@@ -2,8 +2,7 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "../memory/Memory.h"
-#include "../memory/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 #include "BaseQueryProcessor.h"
 #include "ProviderSegmentQueryProcessor.h"
diff --git a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query/EntityQueryProcessor.cpp
similarity index 97%
rename from source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp
rename to source/RobotAPI/libraries/armem/server/query/EntityQueryProcessor.cpp
index dbd24a1e7..1c3b3be1b 100644
--- a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query/EntityQueryProcessor.cpp
@@ -3,9 +3,8 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
-
-#include "../core/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/error.h>
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query/EntityQueryProcessor.h
similarity index 95%
rename from source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query/EntityQueryProcessor.h
index d2ce45d75..c0c37535e 100644
--- a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query/EntityQueryProcessor.h
@@ -2,8 +2,7 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "../memory/Memory.h"
-#include "../memory/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 #include "BaseQueryProcessor.h"
 
diff --git a/source/RobotAPI/libraries/armem/query/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query/MemoryQueryProcessor.cpp
similarity index 96%
rename from source/RobotAPI/libraries/armem/query/MemoryQueryProcessor.cpp
rename to source/RobotAPI/libraries/armem/server/query/MemoryQueryProcessor.cpp
index ffca8a938..924fa3277 100644
--- a/source/RobotAPI/libraries/armem/query/MemoryQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query/MemoryQueryProcessor.cpp
@@ -5,9 +5,8 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
-
-#include "../memory/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/error.h>
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/query/MemoryQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query/MemoryQueryProcessor.h
similarity index 95%
rename from source/RobotAPI/libraries/armem/query/MemoryQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query/MemoryQueryProcessor.h
index 024477726..329f32560 100644
--- a/source/RobotAPI/libraries/armem/query/MemoryQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query/MemoryQueryProcessor.h
@@ -2,8 +2,7 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "../memory/Memory.h"
-#include "../memory/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 #include "BaseQueryProcessor.h"
 #include "CoreSegmentQueryProcessor.h"
diff --git a/source/RobotAPI/libraries/armem/query/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query/ProviderSegmentQueryProcessor.cpp
similarity index 96%
rename from source/RobotAPI/libraries/armem/query/ProviderSegmentQueryProcessor.cpp
rename to source/RobotAPI/libraries/armem/server/query/ProviderSegmentQueryProcessor.cpp
index 3b454c69e..7111d2881 100644
--- a/source/RobotAPI/libraries/armem/query/ProviderSegmentQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query/ProviderSegmentQueryProcessor.cpp
@@ -5,9 +5,8 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-#include "../error/ArMemError.h"
-
-#include "../core/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/error.h>
+#include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/query/ProviderSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query/ProviderSegmentQueryProcessor.h
similarity index 95%
rename from source/RobotAPI/libraries/armem/query/ProviderSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query/ProviderSegmentQueryProcessor.h
index f7afb233b..b15e553c1 100644
--- a/source/RobotAPI/libraries/armem/query/ProviderSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query/ProviderSegmentQueryProcessor.h
@@ -2,8 +2,7 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "../memory/Memory.h"
-#include "../memory/ice_conversions.h"
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 #include "BaseQueryProcessor.h"
 #include "EntityQueryProcessor.h"
diff --git a/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp
index fdfe791f6..6b5b22d46 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp
@@ -25,7 +25,7 @@
 #define ARMARX_BOOST_TEST
 
 #include <RobotAPI/Test.h>
-#include "../memory/ice_conversions.h"
+#include "../core/ice_conversions.h"
 
 #include <iostream>
 #include <SimoxUtility/algorithm/get_map_keys_values.h>
diff --git a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
index f0e380172..c6b5e568e 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
@@ -25,12 +25,12 @@
 #define ARMARX_BOOST_TEST
 
 #include <RobotAPI/Test.h>
-#include "../memory/Memory.h"
-#include "../error/ArMemError.h"
+#include "../core/Memory.h"
+#include "../core/error.h"
 
 #include <RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronAllDataNavigators.h>
 #include <RobotAPI/libraries/aron/aroncore/navigators/typenavigator/AronAllTypeNavigators.h>
-#include <RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.h>
+#include <RobotAPI/libraries/armem/core/io/MemoryFileSystemStorage.h>
 #include <RobotAPI/libraries/aron/aroncore/AronRandomizer.h>
 
 #include <iostream>
diff --git a/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
index f92646ced..8e7836c7c 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
@@ -26,8 +26,8 @@
 
 #include <RobotAPI/Test.h>
 
-#include "../memory/Memory.h"
-#include "../error/ArMemError.h"
+#include "../core/Memory.h"
+#include "../core/error.h"
 
 
 #include <iostream>
diff --git a/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp
index 74eeff976..9a9847d4d 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp
@@ -25,7 +25,7 @@
 #define ARMARX_BOOST_TEST
 
 #include <RobotAPI/Test.h>
-#include "../client/QueryBuilder.h"
+#include "../client/query/Builder.h"
 #include "../client/query/query_fns.h"
 #include "../core/ice_conversions.h"
 
@@ -56,7 +56,7 @@ BOOST_FIXTURE_TEST_SUITE(ArMemQueryBuilderTest, ArMemQueryBuilderTest::Fixture)
 
 BOOST_AUTO_TEST_CASE(test_all_all)
 {
-    armem::client::QueryBuilder qb;
+    armem::client::query::Builder qb;
     qb
     .coreSegments().all()
     .providerSegments().all()
@@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE(test_mixed)
 
     std::vector<std::string> entityNames = {"one", "two"};
 
-    armem::client::QueryBuilder qb(armem::DataMode::WithData);
+    armem::client::query::Builder qb(armem::DataMode::WithData);
     qb
     .coreSegments(withName("core"))
     .providerSegments(withName("provider"))
@@ -168,7 +168,7 @@ BOOST_AUTO_TEST_CASE(test_mixed)
 
 BOOST_AUTO_TEST_CASE(test_branched_hierarchy)
 {
-    armem::client::QueryBuilder qb;
+    armem::client::query::Builder qb;
 
     // Common root tree
     armem::client::query::ProviderSegmentSelector& provider = qb
diff --git a/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
index a923ab3e6..5152c72af 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
@@ -25,7 +25,7 @@
 #define ARMARX_BOOST_TEST
 
 #include <RobotAPI/Test.h>
-#include "../query/EntityQueryProcessor.h"
+#include "../server/query/EntityQueryProcessor.h"
 #include "../error.h"
 
 
diff --git a/source/RobotAPI/libraries/armem_gui/InstanceTreeWidget.h b/source/RobotAPI/libraries/armem_gui/InstanceTreeWidget.h
index adb4de498..842c3fe8a 100644
--- a/source/RobotAPI/libraries/armem_gui/InstanceTreeWidget.h
+++ b/source/RobotAPI/libraries/armem_gui/InstanceTreeWidget.h
@@ -2,7 +2,7 @@
 
 #include <QTreeWidget>
 
-#include <RobotAPI/libraries/armem/memory/Memory.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 
 class QLabel;
 
diff --git a/source/RobotAPI/libraries/armem_gui/MemoryTreeWidget.h b/source/RobotAPI/libraries/armem_gui/MemoryTreeWidget.h
index 0194b729a..010f327d7 100644
--- a/source/RobotAPI/libraries/armem_gui/MemoryTreeWidget.h
+++ b/source/RobotAPI/libraries/armem_gui/MemoryTreeWidget.h
@@ -4,7 +4,7 @@
 
 #include <QObject>
 
-#include <RobotAPI/libraries/armem/memory/Memory.h>
+#include <RobotAPI/libraries/armem/core/Memory.h>
 #include <RobotAPI/libraries/armem_gui/TreeWidgetBuilder.h>
 
 
diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.cpp b/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.cpp
index de985bfca..279af486a 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.cpp
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.cpp
@@ -44,7 +44,7 @@ namespace armarx::armem
 
     armem::client::QueryInput QueryWidget::queryInput()
     {
-        armem::client::QueryBuilder qb(dataMode());
+        armem::client::query::Builder qb(dataMode());
         qb
         .coreSegments().all()
         .providerSegments().all()
diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.h b/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.h
index 084bf7ee9..6abc252ae 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.h
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/QueryWidget.h
@@ -4,7 +4,7 @@
 #include <QTabWidget>
 
 #include <RobotAPI/libraries/armem/core/DataMode.h>
-#include <RobotAPI/libraries/armem/client/QueryBuilder.h>
+#include <RobotAPI/libraries/armem/client/query/Builder.h>
 
 #include "SnapshotSelectorWidget.h"
 
diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp
index d3c1f5c86..c278d7020 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp
@@ -14,7 +14,7 @@
 
 #include <RobotAPI/libraries/armem/core/Time.h>
 #include <RobotAPI/libraries/armem/core/ice_conversions.h>
-#include <RobotAPI/libraries/armem/client/QueryBuilder.h>
+#include <RobotAPI/libraries/armem/client/query/Builder.h>
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h
index ac13cc775..fad390a9b 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h
@@ -2,7 +2,7 @@
 
 #include <QWidget>
 
-#include <RobotAPI/libraries/armem/client/QueryBuilder.h>
+#include <RobotAPI/libraries/armem/client/query/Builder.h>
 
 
 class QCheckBox;
diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotSelectorWidget.h b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotSelectorWidget.h
index e98ca2ff5..2ace0f18a 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotSelectorWidget.h
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotSelectorWidget.h
@@ -5,7 +5,7 @@
 #include <QWidget>
 
 #include <RobotAPI/libraries/armem/core/DataMode.h>
-#include <RobotAPI/libraries/armem/client/QueryBuilder.h>
+#include <RobotAPI/libraries/armem/client/query/Builder.h>
 
 #include "SnapshotForm.h"
 
-- 
GitLab