From f19c228698c2ecf489e64842f58cdf9a93f2871b Mon Sep 17 00:00:00 2001
From: "fabian.peller-konrad@kit.edu" <fabian.peller-konrad@kit.edu>
Date: Mon, 26 Apr 2021 18:22:01 +0200
Subject: [PATCH] renamed stuff, added namespaces to base classes, shortened
 namespaces of memories, fixed robotsensormemory memory name

---
 .../ArMemExample/config/ExampleMemory.cfg     |   8 -
 .../ExampleMemoryClient.cpp                   |  18 +-
 .../ExampleMemoryClient/ExampleMemoryClient.h |   4 +-
 .../ExampleMemory/test/ExampleMemoryTest.cpp  |   6 +-
 .../RobotSensorMemory/RobotSensorMemory.cpp   |   6 +-
 .../RobotSensorMemory/RobotSensorMemory.h     |   3 +-
 .../RobotAPI/libraries/armem/CMakeLists.txt   | 210 +++++++++---------
 .../RobotAPI/libraries/armem/client/Query.cpp |   2 +-
 .../RobotAPI/libraries/armem/client/Query.h   |   6 +-
 .../RobotAPI/libraries/armem/client/Reader.h  |   6 +-
 .../RobotAPI/libraries/armem/client/Writer.h  |   2 +-
 .../armem/client/query/selectors.cpp          |   2 +-
 source/RobotAPI/libraries/armem/core.h        |  15 +-
 source/RobotAPI/libraries/armem/core/Commit.h |   1 -
 .../{CoreSegment.cpp => CoreSegmentBase.cpp}  |   0
 .../base/{CoreSegment.h => CoreSegmentBase.h} |  22 +-
 .../core/base/{Entity.cpp => EntityBase.cpp}  |   0
 .../core/base/{Entity.h => EntityBase.h}      |  27 ++-
 ...ityInstance.cpp => EntityInstanceBase.cpp} |   0
 ...{EntityInstance.h => EntityInstanceBase.h} |  20 +-
 ...itySnapshot.cpp => EntitySnapshotBase.cpp} |   0
 ...{EntitySnapshot.h => EntitySnapshotBase.h} |  13 +-
 .../core/base/{Memory.cpp => MemoryBase.cpp}  |   0
 .../core/base/{Memory.h => MemoryBase.h}      |  22 +-
 ...derSegment.cpp => ProviderSegmentBase.cpp} |   0
 ...roviderSegment.h => ProviderSegmentBase.h} |  17 +-
 .../core/base/detail/EntityContainer.cpp      |  10 -
 .../detail/EntityContainerBase.cpp}           |   0
 ...ntityContainer.h => EntityContainerBase.h} |  31 +--
 .../armem/core/base/detail/MaxHistorySize.cpp |   2 +-
 .../armem/core/base/detail/MaxHistorySize.h   |   2 +-
 .../core/base/detail/MemoryContainer.cpp      |   7 -
 .../core/base/detail/MemoryContainerBase.cpp  |   0
 ...emoryContainer.h => MemoryContainerBase.h} |  12 +-
 .../armem/core/base/detail/MemoryItem.h       |   2 +-
 .../base/detail/TypedEntityContainerBase.cpp  |   0
 ...Container.h => TypedEntityContainerBase.h} |  33 +--
 .../armem/core/base/ice_conversions.cpp       | 130 -----------
 .../armem/core/base/ice_conversions.h         |  35 ---
 .../CoreSegment.cpp                           |  38 ++--
 .../{diskMemory => diskmemory}/CoreSegment.h  |  19 +-
 .../{diskMemory => diskmemory}/Entity.cpp     |  26 +--
 .../core/{diskMemory => diskmemory}/Entity.h  |  16 +-
 .../EntityInstance.cpp                        |  32 +--
 .../EntityInstance.h                          |  19 +-
 .../EntitySnapshot.cpp                        |  22 +-
 .../EntitySnapshot.h                          |  16 +-
 .../{diskMemory => diskmemory}/Memory.cpp     |  24 +-
 .../core/{diskMemory => diskmemory}/Memory.h  |  17 +-
 .../ProviderSegment.cpp                       |  40 ++--
 .../ProviderSegment.h                         |  19 +-
 .../detail/TypedEntityContainer.h             |  14 +-
 .../libraries/armem/core/ice_conversions.cpp  |   4 +-
 .../libraries/armem/core/ice_conversions.h    |   4 +-
 .../armem/core/ice_conversions_templates.h    |  39 ++--
 .../CoreSegment.cpp                           |  26 +--
 .../CoreSegment.h                             |  17 +-
 .../Entity.cpp                                |  16 +-
 .../Entity.h                                  |  16 +-
 .../EntityInstance.cpp                        |  10 +-
 .../EntityInstance.h                          |  15 +-
 .../EntitySnapshot.cpp                        |  12 +-
 .../EntitySnapshot.h                          |  16 +-
 .../Memory.cpp                                |  14 +-
 .../Memory.h                                  |  17 +-
 .../ProviderSegment.cpp                       |  26 +--
 .../ProviderSegment.h                         |  17 +-
 .../mongodb/MongoDBConnectionManager.h        |   4 +-
 .../workingMemory/detail/MemoryContainer.cpp  |   7 -
 .../core/workingMemory/ice_conversions.h      |  36 ---
 .../CoreSegment.cpp                           |  20 +-
 .../CoreSegment.h                             |  11 +-
 .../Entity.cpp                                |  10 +-
 .../{workingMemory => workingmemory}/Entity.h |  10 +-
 .../EntityInstance.cpp                        |   6 +-
 .../EntityInstance.h                          |   9 +-
 .../EntitySnapshot.cpp                        |   6 +-
 .../EntitySnapshot.h                          |  10 +-
 .../Memory.cpp                                |   6 +-
 .../{workingMemory => workingmemory}/Memory.h |  11 +-
 .../ProviderSegment.cpp                       |  20 +-
 .../ProviderSegment.h                         |  11 +-
 .../workingmemory/detail/EntityContainer.cpp  |   0
 .../detail/EntityContainer.h                  |  10 +-
 .../workingmemory/detail/MemoryContainer.cpp  |   0
 .../detail/MemoryContainer.h                  |  18 +-
 .../detail/TypedEntityContainer.cpp           |   0
 .../detail/TypedEntityContainer.h             |  10 +-
 .../ice_conversions.cpp                       |  28 +--
 .../core/workingmemory/ice_conversions.h      |  36 +++
 .../armem/server/ComponentPlugin.cpp          |   2 +-
 .../libraries/armem/server/ComponentPlugin.h  |   8 +-
 .../armem/server/MemoryRemoteGui.cpp          |  14 +-
 .../libraries/armem/server/MemoryRemoteGui.h  |  14 +-
 .../armem/server/MemoryToIceAdapter.cpp       |  14 +-
 .../armem/server/MemoryToIceAdapter.h         |  10 +-
 .../query_proc/base/BaseQueryProcessor.cpp    |  13 --
 .../base/BaseQueryProcessorBase.cpp           |   0
 ...ryProcessor.h => BaseQueryProcessorBase.h} |   2 +-
 .../base/CoreSegmentQueryProcessor.cpp        |  14 --
 .../base/CoreSegmentQueryProcessorBase.cpp    |   0
 ...ssor.h => CoreSegmentQueryProcessorBase.h} |  11 +-
 .../query_proc/base/EntityQueryProcessor.cpp  |  13 --
 .../base/EntityQueryProcessorBase.cpp         |   0
 ...Processor.h => EntityQueryProcessorBase.h} |   8 +-
 .../query_proc/base/MemoryQueryProcessor.cpp  |  15 --
 .../base/MemoryQueryProcessorBase.cpp         |   0
 ...Processor.h => MemoryQueryProcessorBase.h} |  14 +-
 .../base/ProviderSegmentQueryProcessor.cpp    |  15 --
 .../ProviderSegmentQueryProcessorBase.cpp     |   0
 ....h => ProviderSegmentQueryProcessorBase.h} |  11 +-
 .../longtermMemory/BaseQueryProcessor.cpp     |  13 --
 .../CoreSegmentQueryProcessor.cpp             |  14 --
 .../longtermMemory/EntityQueryProcessor.cpp   |  13 --
 .../longtermMemory/EntityQueryProcessor.h     |  39 ----
 .../longtermMemory/MemoryQueryProcessor.cpp   |  15 --
 .../ProviderSegmentQueryProcessor.cpp         |  15 --
 .../ProviderSegmentQueryProcessor.h           |  38 ----
 .../longtermmemory/BaseQueryProcessor.cpp     |   0
 .../BaseQueryProcessor.h                      |  10 +-
 .../CoreSegmentQueryProcessor.cpp             |   0
 .../CoreSegmentQueryProcessor.h               |  13 +-
 .../longtermmemory/EntityQueryProcessor.cpp   |   0
 .../longtermmemory/EntityQueryProcessor.h     |  39 ++++
 .../longtermmemory/MemoryQueryProcessor.cpp   |   0
 .../MemoryQueryProcessor.h                    |  13 +-
 .../ProviderSegmentQueryProcessor.cpp         |   0
 .../ProviderSegmentQueryProcessor.h           |  37 +++
 .../workingMemory/BaseQueryProcessor.cpp      |  13 --
 .../CoreSegmentQueryProcessor.cpp             |  14 --
 .../workingMemory/EntityQueryProcessor.cpp    |  13 --
 .../workingMemory/MemoryQueryProcessor.cpp    |  15 --
 .../ProviderSegmentQueryProcessor.cpp         |  15 --
 .../workingmemory/BaseQueryProcessor.cpp      |   0
 .../BaseQueryProcessor.h                      |  10 +-
 .../CoreSegmentQueryProcessor.cpp             |   0
 .../CoreSegmentQueryProcessor.h               |  15 +-
 .../workingmemory/EntityQueryProcessor.cpp    |   0
 .../EntityQueryProcessor.h                    |  20 +-
 .../workingmemory/MemoryQueryProcessor.cpp    |   0
 .../MemoryQueryProcessor.h                    |  19 +-
 .../ProviderSegmentQueryProcessor.cpp         |   0
 .../ProviderSegmentQueryProcessor.h           |  15 +-
 .../armem/test/ArMemIceConversionsTest.cpp    |  10 +-
 .../libraries/armem/test/ArMemLTMTest.cpp     |  12 +-
 .../libraries/armem/test/ArMemMemoryTest.cpp  |  16 +-
 .../armem/test/ArMemQueryBuilderTest.cpp      |   2 +-
 .../libraries/armem/test/ArMemQueryTest.cpp   |  42 ++--
 source/RobotAPI/libraries/armem/util/util.h   |  10 +-
 .../libraries/armem_gui/MemoryViewer.cpp      |  14 +-
 .../libraries/armem_gui/MemoryViewer.h        |   2 +-
 .../armem_gui/instance/InstanceView.cpp       |   8 +-
 .../armem_gui/instance/InstanceView.h         |  10 +-
 .../libraries/armem_gui/memory/TreeWidget.cpp |  70 +++---
 .../libraries/armem_gui/memory/TreeWidget.h   |  44 ++--
 .../TransformReader.cpp                       |  14 +-
 .../TransformReader.h                         |   6 +-
 .../TransformWriter.cpp                       |   6 +-
 158 files changed, 972 insertions(+), 1384 deletions(-)
 rename source/RobotAPI/libraries/armem/core/base/{CoreSegment.cpp => CoreSegmentBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/{CoreSegment.h => CoreSegmentBase.h} (89%)
 rename source/RobotAPI/libraries/armem/core/base/{Entity.cpp => EntityBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/{Entity.h => EntityBase.h} (93%)
 rename source/RobotAPI/libraries/armem/core/base/{EntityInstance.cpp => EntityInstanceBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/{EntityInstance.h => EntityInstanceBase.h} (72%)
 rename source/RobotAPI/libraries/armem/core/base/{EntitySnapshot.cpp => EntitySnapshotBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/{EntitySnapshot.h => EntitySnapshotBase.h} (95%)
 rename source/RobotAPI/libraries/armem/core/base/{Memory.cpp => MemoryBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/{Memory.h => MemoryBase.h} (89%)
 rename source/RobotAPI/libraries/armem/core/base/{ProviderSegment.cpp => ProviderSegmentBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/{ProviderSegment.h => ProviderSegmentBase.h} (92%)
 delete mode 100644 source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.cpp
 rename source/RobotAPI/libraries/armem/core/{workingMemory/detail/EntityContainer.cpp => base/detail/EntityContainerBase.cpp} (100%)
 rename source/RobotAPI/libraries/armem/core/base/detail/{EntityContainer.h => EntityContainerBase.h} (74%)
 delete mode 100644 source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.cpp
 create mode 100644 source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.cpp
 rename source/RobotAPI/libraries/armem/core/base/detail/{MemoryContainer.h => MemoryContainerBase.h} (90%)
 create mode 100644 source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainerBase.cpp
 rename source/RobotAPI/libraries/armem/core/base/detail/{TypedEntityContainer.h => TypedEntityContainerBase.h} (66%)
 delete mode 100644 source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/core/base/ice_conversions.h
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/CoreSegment.cpp (69%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/CoreSegment.h (68%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/Entity.cpp (78%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/Entity.h (77%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/EntityInstance.cpp (88%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/EntityInstance.h (75%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/EntitySnapshot.cpp (81%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/EntitySnapshot.h (64%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/Memory.cpp (81%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/Memory.h (66%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/ProviderSegment.cpp (69%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/ProviderSegment.h (66%)
 rename source/RobotAPI/libraries/armem/core/{diskMemory => diskmemory}/detail/TypedEntityContainer.h (90%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/CoreSegment.cpp (55%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/CoreSegment.h (63%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/Entity.cpp (66%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/Entity.h (75%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/EntityInstance.cpp (89%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/EntityInstance.h (84%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/EntitySnapshot.cpp (74%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/EntitySnapshot.h (57%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/Memory.cpp (76%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/Memory.h (63%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/ProviderSegment.cpp (55%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/ProviderSegment.h (64%)
 rename source/RobotAPI/libraries/armem/core/{longtermMemory => longtermmemory}/mongodb/MongoDBConnectionManager.h (94%)
 delete mode 100644 source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/CoreSegment.cpp (57%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/CoreSegment.h (78%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/Entity.cpp (71%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/Entity.h (85%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/EntityInstance.cpp (95%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/EntityInstance.h (92%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/EntitySnapshot.cpp (84%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/EntitySnapshot.h (74%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/Memory.cpp (85%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/Memory.h (73%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/ProviderSegment.cpp (58%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/ProviderSegment.h (79%)
 create mode 100644 source/RobotAPI/libraries/armem/core/workingmemory/detail/EntityContainer.cpp
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/detail/EntityContainer.h (68%)
 create mode 100644 source/RobotAPI/libraries/armem/core/workingmemory/detail/MemoryContainer.cpp
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/detail/MemoryContainer.h (55%)
 create mode 100644 source/RobotAPI/libraries/armem/core/workingmemory/detail/TypedEntityContainer.cpp
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/detail/TypedEntityContainer.h (58%)
 rename source/RobotAPI/libraries/armem/core/{workingMemory => workingmemory}/ice_conversions.cpp (69%)
 create mode 100644 source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/base/{BaseQueryProcessor.h => BaseQueryProcessorBase.h} (96%)
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/base/{CoreSegmentQueryProcessor.h => CoreSegmentQueryProcessorBase.h} (91%)
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/base/{EntityQueryProcessor.h => EntityQueryProcessorBase.h} (96%)
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/base/{MemoryQueryProcessor.h => MemoryQueryProcessorBase.h} (85%)
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/base/{ProviderSegmentQueryProcessor.h => ProviderSegmentQueryProcessorBase.h} (91%)
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.h
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.h
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/BaseQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{longtermMemory => longtermmemory}/BaseQueryProcessor.h (55%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/CoreSegmentQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{longtermMemory => longtermmemory}/CoreSegmentQueryProcessor.h (52%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.h
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/MemoryQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{longtermMemory => longtermmemory}/MemoryQueryProcessor.h (52%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.h
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.cpp
 delete mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.cpp
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{workingMemory => workingmemory}/BaseQueryProcessor.h (61%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{workingMemory => workingmemory}/CoreSegmentQueryProcessor.h (57%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{workingMemory => workingmemory}/EntityQueryProcessor.h (52%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{workingMemory => workingmemory}/MemoryQueryProcessor.h (62%)
 create mode 100644 source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp
 rename source/RobotAPI/libraries/armem/server/query_proc/{workingMemory => workingmemory}/ProviderSegmentQueryProcessor.h (55%)

diff --git a/scenarios/ArMemExample/config/ExampleMemory.cfg b/scenarios/ArMemExample/config/ExampleMemory.cfg
index e59a680a2..d0a545f7a 100644
--- a/scenarios/ArMemExample/config/ExampleMemory.cfg
+++ b/scenarios/ArMemExample/config/ExampleMemory.cfg
@@ -84,14 +84,6 @@ ArmarX.ArMemExampleMemory.tpc.pub.MemoryListener = MemoryUpdates
 # ArmarX.EnableProfiling = false
 
 
-# ArmarX.ExampleMemory.:  
-#  Attributes:
-#  - Default:            ""
-#  - Case sensitivity:   yes
-#  - Required:           no
-# ArmarX.ExampleMemory. = ""
-
-
 # ArmarX.ExampleMemory.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
 #  - Default:            false
diff --git a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
index a8d5f925e..5ed005e7a 100644
--- a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
+++ b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
@@ -30,7 +30,7 @@
 #include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h>
 #include <RobotAPI/libraries/armem/client/query/Builder.h>
 #include <RobotAPI/libraries/armem/client/query/query_fns.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
 #include <RobotAPI/components/armem/server/ExampleMemory/aron/ExampleData.aron.generated.h>
 
@@ -221,19 +221,19 @@ namespace armarx
 
         if (qResult.success)
         {
-            armem::workingmemory::Memory& memory = qResult.memory;
+            armem::wm::Memory& memory = qResult.memory;
 
             ARMARX_CHECK_EQUAL(memory.coreSegments().size(), 1);
-            armem::workingmemory::CoreSegment& coreSeg = memory.coreSegments().begin()->second;
+            armem::wm::CoreSegment& coreSeg = memory.coreSegments().begin()->second;
 
             ARMARX_CHECK_EQUAL(coreSeg.providerSegments().size(), 1);
-            armem::workingmemory::ProviderSegment& provSeg = coreSeg.providerSegments().begin()->second;
+            armem::wm::ProviderSegment& provSeg = coreSeg.providerSegments().begin()->second;
 
             ARMARX_CHECK_EQUAL(provSeg.entities().size(), 1);
-            armem::workingmemory::Entity& entity = provSeg.entities().begin()->second;
+            armem::wm::Entity& entity = provSeg.entities().begin()->second;
 
             ARMARX_CHECK_GREATER_EQUAL(entity.history().size(), 1);
-            armem::workingmemory::EntitySnapshot& snapshot = entity.history().begin()->second;
+            armem::wm::EntitySnapshot& snapshot = entity.history().begin()->second;
 
             ARMARX_INFO << "Result: "
                         << "\n- memory:       \t" << memory.name()
@@ -245,7 +245,7 @@ namespace armarx
                         ;
 
             ARMARX_IMPORTANT << "Getting entity via ID";
-            const armem::workingmemory::Entity& e = memory.getEntity(entityID);
+            const armem::wm::Entity& e = memory.getEntity(entityID);
             ARMARX_INFO << "Result: "
                         << "\n- entity:       \t" << e.name()
                         << "\n- snapshot:     \t" << e.getLatestSnapshot().time()
@@ -282,8 +282,8 @@ namespace armarx
 
         if (qResult.success)
         {
-            armem::workingmemory::Memory memory = std::move(qResult.memory);
-            const armem::workingmemory::EntitySnapshot& entitySnapshot = memory.getEntity(snapshotID).getLatestSnapshot();
+            armem::wm::Memory memory = std::move(qResult.memory);
+            const armem::wm::EntitySnapshot& entitySnapshot = memory.getEntity(snapshotID).getLatestSnapshot();
 
             ARMARX_INFO << "Result snapshot: "
                         << "\n- time:        \t" << entitySnapshot.time()
diff --git a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h
index ba4f67a4b..e2e975c4a 100644
--- a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h
+++ b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h
@@ -34,7 +34,7 @@
 #include <RobotAPI/interface/armem/server/MemoryInterface.h>
 #include <RobotAPI/interface/armem/mns/MemoryNameSystemInterface.h>
 #include <RobotAPI/libraries/armem/client/ComponentPlugin.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
 
 
 namespace armarx
@@ -124,7 +124,7 @@ namespace armarx
         {
             std::atomic_bool rebuild = false;
 
-            std::optional<armem::workingmemory::Memory> queryResult;
+            std::optional<armem::wm::Memory> queryResult;
             RemoteGui::Client::GroupBox queryResultGroup;
         };
         RemoteGuiTab tab;
diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/test/ExampleMemoryTest.cpp b/source/RobotAPI/components/armem/server/ExampleMemory/test/ExampleMemoryTest.cpp
index 01ff68729..bb1988874 100644
--- a/source/RobotAPI/components/armem/server/ExampleMemory/test/ExampleMemoryTest.cpp
+++ b/source/RobotAPI/components/armem/server/ExampleMemory/test/ExampleMemoryTest.cpp
@@ -51,9 +51,9 @@ BOOST_AUTO_TEST_CASE(test_ExampleData_type)
 
     BOOST_CHECK_EQUAL(type->childrenSize(), 15);
 
-    armem::workingmemory::Memory memory;
-    armem::workingmemory::CoreSegment& core = memory.addCoreSegment("ExampleData", type);
-    armem::workingmemory::ProviderSegment& prov = core.addProviderSegment("Provider");
+    armem::wm::Memory memory;
+    armem::wm::CoreSegment& core = memory.addCoreSegment("ExampleData", type);
+    armem::wm::ProviderSegment& prov = core.addProviderSegment("Provider");
 
     BOOST_CHECK_EQUAL(core.aronType, prov.aronType);
 }
diff --git a/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.cpp b/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.cpp
index cc09275e7..2293364c6 100644
--- a/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.cpp
+++ b/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.cpp
@@ -71,7 +71,7 @@ namespace armarx
         robotStateComponentMemoryBatchSize = std::max((unsigned int) 1, robotStateComponentMemoryBatchSize);
         robotStateComponentPollFrequency = std::clamp(robotStateComponentPollFrequency, 1, ROBOT_STATE_COMPONENT_MAXIMUM_FREQUENCY);
 
-        workingmemory.name() = memoryName;
+        workingmemory.name() = workingMemoryName;
     }
 
 
@@ -136,7 +136,7 @@ namespace armarx
             ARMARX_ERROR << "Could not add segment " << robotUnitCoreSegmentName << "/" << robotUnitProviderSegmentName << ". The error message is: " << result.errorMessage;
         }
 
-        robotUnitProviderID.memoryName = memoryName;
+        robotUnitProviderID.memoryName = workingMemoryName;
         robotUnitProviderID.coreSegmentName = robotUnitCoreSegmentName;
         robotUnitProviderID.providerSegmentName = robotUnitProviderSegmentName;
     }
@@ -395,7 +395,7 @@ namespace armarx
             ARMARX_ERROR << "Could not add segment " << robotStateComponentCoreSegmentName << "/" << robotStateComponentProviderSegmentName << ". The error message is: " << result.errorMessage;
         }
 
-        robotStateComponentProviderID.memoryName = memoryName;
+        robotStateComponentProviderID.memoryName = workingMemoryName;
         robotStateComponentProviderID.coreSegmentName = robotStateComponentCoreSegmentName;
         robotStateComponentProviderID.providerSegmentName = robotStateComponentProviderSegmentName;
     }
diff --git a/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.h b/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.h
index 6b6ea32c9..b16ee1296 100644
--- a/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.h
+++ b/source/RobotAPI/components/armem/server/RobotSensorMemory/RobotSensorMemory.h
@@ -104,7 +104,7 @@ namespace armarx
         void stopRobotStateComponentPoll();
 
     private:
-        std::string memoryName = "RobotSensorMemory";
+        std::string workingMemoryName = "RobotStateMemory";
         bool addCoreSegmentOnUsage = false;
 
         mutable std::recursive_mutex startStopMutex;
@@ -114,6 +114,7 @@ namespace armarx
         std::string robotUnitProviderSegmentName = "RobotUnit"; // get robot name?
         armem::data::MemoryID robotUnitProviderID;
 
+        // TODO: Remove the whole connection to the RSC since this memory will replace it?
         std::string robotStateComponentCoreSegmentName = "Localization";
         std::string robotStateComponentProviderSegmentName = "RobotStateComponent"; // get robot name?
         armem::data::MemoryID robotStateComponentProviderID;
diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt
index 0462bbd67..9e8250ffc 100644
--- a/source/RobotAPI/libraries/armem/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem/CMakeLists.txt
@@ -25,37 +25,42 @@ set(LIB_FILES
 
     core/base/detail/MemoryItem.cpp
     core/base/detail/MaxHistorySize.cpp
-    core/base/detail/MemoryContainer.cpp
-    core/base/detail/EntityContainer.cpp
-
-    core/base/CoreSegment.cpp
-    core/base/Entity.cpp
-    core/base/EntityInstance.cpp
-    core/base/EntitySnapshot.cpp
-    core/base/Memory.cpp
-    core/base/ProviderSegment.cpp
-
-    core/workingMemory/ice_conversions.cpp
-    core/workingMemory/CoreSegment.cpp
-    core/workingMemory/Entity.cpp
-    core/workingMemory/EntityInstance.cpp
-    core/workingMemory/EntitySnapshot.cpp
-    core/workingMemory/Memory.cpp
-    core/workingMemory/ProviderSegment.cpp
-
-    core/longtermMemory/CoreSegment.cpp
-    core/longtermMemory/Entity.cpp
-    core/longtermMemory/EntityInstance.cpp
-    core/longtermMemory/EntitySnapshot.cpp
-    core/longtermMemory/Memory.cpp
-    core/longtermMemory/ProviderSegment.cpp
-
-    core/diskMemory/CoreSegment.cpp
-    core/diskMemory/Entity.cpp
-    core/diskMemory/EntityInstance.cpp
-    core/diskMemory/EntitySnapshot.cpp
-    core/diskMemory/Memory.cpp
-    core/diskMemory/ProviderSegment.cpp
+    core/base/detail/MemoryContainerBase.cpp
+    core/base/detail/EntityContainerBase.cpp
+    core/base/detail/TypedEntityContainerBase.cpp
+
+    core/base/CoreSegmentBase.cpp
+    core/base/EntityBase.cpp
+    core/base/EntityInstanceBase.cpp
+    core/base/EntitySnapshotBase.cpp
+    core/base/MemoryBase.cpp
+    core/base/ProviderSegmentBase.cpp
+
+    core/workingmemory/ice_conversions.cpp
+    core/workingmemory/detail/MemoryContainer.cpp
+    core/workingmemory/detail/EntityContainer.cpp
+    core/workingmemory/detail/TypedEntityContainer.cpp
+    core/workingmemory/CoreSegment.cpp
+    core/workingmemory/Entity.cpp
+    core/workingmemory/EntityInstance.cpp
+    core/workingmemory/EntitySnapshot.cpp
+    core/workingmemory/Memory.cpp
+    core/workingmemory/ProviderSegment.cpp
+    core/workingmemory/ice_conversions.cpp
+
+    core/longtermmemory/CoreSegment.cpp
+    core/longtermmemory/Entity.cpp
+    core/longtermmemory/EntityInstance.cpp
+    core/longtermmemory/EntitySnapshot.cpp
+    core/longtermmemory/Memory.cpp
+    core/longtermmemory/ProviderSegment.cpp
+
+    core/diskmemory/CoreSegment.cpp
+    core/diskmemory/Entity.cpp
+    core/diskmemory/EntityInstance.cpp
+    core/diskmemory/EntitySnapshot.cpp
+    core/diskmemory/Memory.cpp
+    core/diskmemory/ProviderSegment.cpp
 
     core/error/ArMemError.cpp
 
@@ -74,23 +79,23 @@ set(LIB_FILES
     server/MemoryRemoteGui.cpp
     server/RemoteGuiAronDataVisitor.cpp
 
-    server/query_proc/base/BaseQueryProcessor.cpp
-    server/query_proc/base/EntityQueryProcessor.cpp
-    server/query_proc/base/ProviderSegmentQueryProcessor.cpp
-    server/query_proc/base/CoreSegmentQueryProcessor.cpp
-    server/query_proc/base/MemoryQueryProcessor.cpp
+    server/query_proc/base/BaseQueryProcessorBase.cpp
+    server/query_proc/base/EntityQueryProcessorBase.cpp
+    server/query_proc/base/ProviderSegmentQueryProcessorBase.cpp
+    server/query_proc/base/CoreSegmentQueryProcessorBase.cpp
+    server/query_proc/base/MemoryQueryProcessorBase.cpp
 
-    server/query_proc/workingMemory/BaseQueryProcessor.cpp
-    server/query_proc/workingMemory/EntityQueryProcessor.cpp
-    server/query_proc/workingMemory/ProviderSegmentQueryProcessor.cpp
-    server/query_proc/workingMemory/CoreSegmentQueryProcessor.cpp
-    server/query_proc/workingMemory/MemoryQueryProcessor.cpp
+    server/query_proc/workingmemory/BaseQueryProcessor.cpp
+    server/query_proc/workingmemory/EntityQueryProcessor.cpp
+    server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp
+    server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp
+    server/query_proc/workingmemory/MemoryQueryProcessor.cpp
 
-    server/query_proc/longtermMemory/BaseQueryProcessor.cpp
-    server/query_proc/longtermMemory/EntityQueryProcessor.cpp
-    server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.cpp
-    server/query_proc/longtermMemory/CoreSegmentQueryProcessor.cpp
-    server/query_proc/longtermMemory/MemoryQueryProcessor.cpp
+    server/query_proc/longtermmemory/BaseQueryProcessor.cpp
+    server/query_proc/longtermmemory/EntityQueryProcessor.cpp
+    server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.cpp
+    server/query_proc/longtermmemory/CoreSegmentQueryProcessor.cpp
+    server/query_proc/longtermmemory/MemoryQueryProcessor.cpp
 
     mns/MemoryNameSystem.cpp
     mns/ClientPlugin.cpp
@@ -106,51 +111,52 @@ set(LIB_HEADERS
     core/MemoryID.h
     core/SuccessHeader.h
     core/Time.h
-    core/ice_conversions.h
-    core/ice_conversions_templates.h
 
     core/error.h
     core/error/ArMemError.h
 
     core/base/detail/MemoryItem.h
     core/base/detail/MaxHistorySize.h
-    core/base/detail/MemoryContainer.h
-    core/base/detail/EntityContainer.h
-    core/base/detail/TypedEntityContainer.h
-
-    core/base/CoreSegment.h
-    core/base/Entity.h
-    core/base/EntityInstance.h
-    core/base/EntitySnapshot.h
-    core/base/Memory.h
-    core/base/ProviderSegment.h
-
-    core/workingMemory/detail/MemoryContainer.h
-    core/workingMemory/detail/EntityContainer.h
-    core/workingMemory/detail/TypedEntityContainer.h
-    core/workingMemory/ice_conversions.h
-    core/workingMemory/CoreSegment.h
-    core/workingMemory/Entity.h
-    core/workingMemory/EntityInstance.h
-    core/workingMemory/EntitySnapshot.h
-    core/workingMemory/Memory.h
-    core/workingMemory/ProviderSegment.h
-
-    core/longtermMemory/CoreSegment.h
-    core/longtermMemory/Entity.h
-    core/longtermMemory/EntityInstance.h
-    core/longtermMemory/EntitySnapshot.h
-    core/longtermMemory/Memory.h
-    core/longtermMemory/ProviderSegment.h
-    core/longtermMemory/mongodb/MongoDBConnectionManager.h
-
-    core/diskMemory/detail/TypedEntityContainer.h
-    core/diskMemory/CoreSegment.h
-    core/diskMemory/Entity.h
-    core/diskMemory/EntityInstance.h
-    core/diskMemory/EntitySnapshot.h
-    core/diskMemory/Memory.h
-    core/diskMemory/ProviderSegment.h
+    core/base/detail/MemoryContainerBase.h
+    core/base/detail/EntityContainerBase.h
+    core/base/detail/TypedEntityContainerBase.h
+
+    core/base/CoreSegmentBase.h
+    core/base/EntityBase.h
+    core/base/EntityInstanceBase.h
+    core/base/EntitySnapshotBase.h
+    core/base/MemoryBase.h
+    core/base/ProviderSegmentBase.h
+
+    core/workingmemory/detail/MemoryContainer.h
+    core/workingmemory/detail/EntityContainer.h
+    core/workingmemory/detail/TypedEntityContainer.h
+    core/workingmemory/CoreSegment.h
+    core/workingmemory/Entity.h
+    core/workingmemory/EntityInstance.h
+    core/workingmemory/EntitySnapshot.h
+    core/workingmemory/Memory.h
+    core/workingmemory/ProviderSegment.h
+    core/workingmemory/ice_conversions.h
+
+    core/longtermmemory/CoreSegment.h
+    core/longtermmemory/Entity.h
+    core/longtermmemory/EntityInstance.h
+    core/longtermmemory/EntitySnapshot.h
+    core/longtermmemory/Memory.h
+    core/longtermmemory/ProviderSegment.h
+    core/longtermmemory/mongodb/MongoDBConnectionManager.h
+
+    core/diskmemory/detail/TypedEntityContainer.h
+    core/diskmemory/CoreSegment.h
+    core/diskmemory/Entity.h
+    core/diskmemory/EntityInstance.h
+    core/diskmemory/EntitySnapshot.h
+    core/diskmemory/Memory.h
+    core/diskmemory/ProviderSegment.h
+
+    core/ice_conversions.h
+    core/ice_conversions_templates.h
 
     client.h
     client/ComponentPlugin.h
@@ -173,23 +179,23 @@ set(LIB_HEADERS
     server/RemoteGuiAronDataVisitor.h
 
     server/query_proc.h
-    server/query_proc/base/BaseQueryProcessor.h
-    server/query_proc/base/EntityQueryProcessor.h
-    server/query_proc/base/ProviderSegmentQueryProcessor.h
-    server/query_proc/base/CoreSegmentQueryProcessor.h
-    server/query_proc/base/MemoryQueryProcessor.h
-
-    server/query_proc/workingMemory/BaseQueryProcessor.h
-    server/query_proc/workingMemory/EntityQueryProcessor.h
-    server/query_proc/workingMemory/ProviderSegmentQueryProcessor.h
-    server/query_proc/workingMemory/CoreSegmentQueryProcessor.h
-    server/query_proc/workingMemory/MemoryQueryProcessor.h
-
-    server/query_proc/longtermMemory/BaseQueryProcessor.h
-    server/query_proc/longtermMemory/EntityQueryProcessor.h
-    server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.h
-    server/query_proc/longtermMemory/CoreSegmentQueryProcessor.h
-    server/query_proc/longtermMemory/MemoryQueryProcessor.h
+    server/query_proc/base/BaseQueryProcessorBase.h
+    server/query_proc/base/EntityQueryProcessorBase.h
+    server/query_proc/base/ProviderSegmentQueryProcessorBase.h
+    server/query_proc/base/CoreSegmentQueryProcessorBase.h
+    server/query_proc/base/MemoryQueryProcessorBase.h
+
+    server/query_proc/workingmemory/BaseQueryProcessor.h
+    server/query_proc/workingmemory/EntityQueryProcessor.h
+    server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
+    server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
+    server/query_proc/workingmemory/MemoryQueryProcessor.h
+
+    server/query_proc/longtermmemory/BaseQueryProcessor.h
+    server/query_proc/longtermmemory/EntityQueryProcessor.h
+    server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.h
+    server/query_proc/longtermmemory/CoreSegmentQueryProcessor.h
+    server/query_proc/longtermmemory/MemoryQueryProcessor.h
 
     mns.h
     mns/MemoryNameSystem.h
diff --git a/source/RobotAPI/libraries/armem/client/Query.cpp b/source/RobotAPI/libraries/armem/client/Query.cpp
index 9830e11c4..1777839f2 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 <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/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 5c0fb0f2b..b22c88001 100644
--- a/source/RobotAPI/libraries/armem/client/Query.h
+++ b/source/RobotAPI/libraries/armem/client/Query.h
@@ -3,10 +3,10 @@
 // RobotAPI
 #include <RobotAPI/interface/armem/query.h>
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 #include <RobotAPI/libraries/armem/core/SuccessHeader.h>
 #include <RobotAPI/libraries/armem/core/DataMode.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
 
 
 namespace armarx::armem::client
@@ -31,7 +31,7 @@ namespace armarx::armem::client
      */
     struct QueryResult : public detail::SuccessHeader
     {
-        workingmemory::Memory memory;
+        wm::Memory memory;
 
 
         static QueryResult fromIce(const armem::query::data::Result& ice);
diff --git a/source/RobotAPI/libraries/armem/client/Reader.h b/source/RobotAPI/libraries/armem/client/Reader.h
index 17076216a..cf0adbb45 100644
--- a/source/RobotAPI/libraries/armem/client/Reader.h
+++ b/source/RobotAPI/libraries/armem/client/Reader.h
@@ -10,9 +10,9 @@
 #include <RobotAPI/interface/armem/server/ReadingMemoryInterface.h>
 #include <RobotAPI/interface/armem/server/StoringMemoryInterface.h>
 #include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
-#include <RobotAPI/libraries/armem/core/longtermMemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/longtermmemory/Memory.h>
 
 #include "Query.h"
 
diff --git a/source/RobotAPI/libraries/armem/client/Writer.h b/source/RobotAPI/libraries/armem/client/Writer.h
index 7a7160fcb..9c6e8851e 100644
--- a/source/RobotAPI/libraries/armem/client/Writer.h
+++ b/source/RobotAPI/libraries/armem/client/Writer.h
@@ -2,7 +2,7 @@
 
 #include <RobotAPI/interface/armem/server/WritingMemoryInterface.h>
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
 
 namespace armarx::armem::client
diff --git a/source/RobotAPI/libraries/armem/client/query/selectors.cpp b/source/RobotAPI/libraries/armem/client/query/selectors.cpp
index 838357071..f2bae7128 100644
--- a/source/RobotAPI/libraries/armem/client/query/selectors.cpp
+++ b/source/RobotAPI/libraries/armem/client/query/selectors.cpp
@@ -1,6 +1,6 @@
 #include "selectors.h"
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
 
 namespace dq = ::armarx::armem::query::data;
diff --git a/source/RobotAPI/libraries/armem/core.h b/source/RobotAPI/libraries/armem/core.h
index e4825918b..c8ddee31c 100644
--- a/source/RobotAPI/libraries/armem/core.h
+++ b/source/RobotAPI/libraries/armem/core.h
@@ -1,19 +1,18 @@
 #pragma once
 
 #include "core/error.h"
-#include "core/ice_conversions.h"
 #include "core/Commit.h"
 #include "core/DataMode.h"
 #include "core/MemoryID.h"
 #include "core/Time.h"
 
-#include "core/workingMemory/Memory.h"
-#include "core/workingMemory/CoreSegment.h"
-#include "core/workingMemory/ProviderSegment.h"
-#include "core/workingMemory/Entity.h"
-#include "core/workingMemory/EntitySnapshot.h"
-#include "core/workingMemory/EntityInstance.h"
-#include "core/workingMemory/ice_conversions.h"
+#include "core/workingmemory/Memory.h"
+#include "core/workingmemory/CoreSegment.h"
+#include "core/workingmemory/ProviderSegment.h"
+#include "core/workingmemory/Entity.h"
+#include "core/workingmemory/EntitySnapshot.h"
+#include "core/workingmemory/EntityInstance.h"
+#include "core/workingmemory/ice_conversions.h"
 
 
 namespace armarx::armem
diff --git a/source/RobotAPI/libraries/armem/core/Commit.h b/source/RobotAPI/libraries/armem/core/Commit.h
index 6a25f7a7c..ff3215ab7 100644
--- a/source/RobotAPI/libraries/armem/core/Commit.h
+++ b/source/RobotAPI/libraries/armem/core/Commit.h
@@ -10,7 +10,6 @@
 
 namespace armarx::armem
 {
-
     /**
      * @brief An update of an entity for a specific point in time.
      */
diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/base/CoreSegment.cpp
rename to source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegment.h b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
similarity index 89%
rename from source/RobotAPI/libraries/armem/core/base/CoreSegment.h
rename to source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
index f0f02976d..8e99598c1 100644
--- a/source/RobotAPI/libraries/armem/core/base/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
@@ -3,27 +3,29 @@
 #include <map>
 #include <string>
 
-#include "ProviderSegment.h"
-#include "detail/TypedEntityContainer.h"
+#include "ProviderSegmentBase.h"
 #include "detail/MaxHistorySize.h"
+#include "detail/TypedEntityContainerBase.h"
 
 
-namespace armarx::armem
+namespace armarx::armem::base
 {
 
     /**
      * @brief Data of a core segment containing multiple provider segments.
      */
-    template <class _ProviderSegmentT, class Derived>
+    template <class _ProviderSegmentT, class _Derived>
     class CoreSegmentBase :
-        virtual public detail::TypedEntityContainerBase<_ProviderSegmentT, typename _ProviderSegmentT::EntityT, Derived>,
-        virtual public armarx::armem::detail::MaxHistorySize
+        virtual public detail::TypedEntityContainerBase<_ProviderSegmentT, typename _ProviderSegmentT::EntityT, _Derived>,
+        virtual public detail::MaxHistorySize
     {
-        using Base = detail::TypedEntityContainerBase<_ProviderSegmentT, typename _ProviderSegmentT::EntityT, Derived>;
-
-        using _EntityT = typename _ProviderSegmentT::EntityT;
+        using Base = detail::TypedEntityContainerBase<_ProviderSegmentT, typename _ProviderSegmentT::EntityT, _Derived>;
 
     public:
+        using ProviderSegmentT = _ProviderSegmentT;
+        using EntityT = typename ProviderSegmentT::EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
+        using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT;
 
         CoreSegmentBase& operator=(const CoreSegmentBase& other)
         {
@@ -77,7 +79,7 @@ namespace armarx::armem
         }
 
         using Base::_checkContainerName;
-        const _EntityT& getEntity(const MemoryID& id) const override
+        const EntityT& getEntity(const MemoryID& id) const override
         {
             _checkContainerName(id.coreSegmentName, this->getKeyString());
             return getProviderSegment(id.providerSegmentName).getEntity(id);
diff --git a/source/RobotAPI/libraries/armem/core/base/Entity.cpp b/source/RobotAPI/libraries/armem/core/base/EntityBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/base/Entity.cpp
rename to source/RobotAPI/libraries/armem/core/base/EntityBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/Entity.h b/source/RobotAPI/libraries/armem/core/base/EntityBase.h
similarity index 93%
rename from source/RobotAPI/libraries/armem/core/base/Entity.h
rename to source/RobotAPI/libraries/armem/core/base/EntityBase.h
index f52944ccc..2f7788696 100644
--- a/source/RobotAPI/libraries/armem/core/base/Entity.h
+++ b/source/RobotAPI/libraries/armem/core/base/EntityBase.h
@@ -8,11 +8,11 @@
 #include "../../core/Time.h"
 #include "../../core/MemoryID.h"
 
-#include "EntitySnapshot.h"
-#include "detail/MemoryContainer.h"
+#include "EntitySnapshotBase.h"
+#include "detail/MemoryContainerBase.h"
 
 
-namespace armarx::armem
+namespace armarx::armem::base
 {
 
     /**
@@ -34,13 +34,16 @@ namespace armarx::armem
      * (potentially variable) number of instances (`EntityInstance`),
      * each containing a single `AronData` object of a specific `AronType`.
      */
-    template <class _EntitySnapshotT, class Derived>
+    template <class _EntitySnapshotT, class _Derived>
     class EntityBase :
-        virtual public detail::MemoryContainerBase<std::map<Time, _EntitySnapshotT>, Derived>
+        virtual public detail::MemoryContainerBase<std::map<Time, _EntitySnapshotT>, _Derived>
     {
-        using Base = detail::MemoryContainerBase<std::map<Time, _EntitySnapshotT>, Derived>;
+        using Base = detail::MemoryContainerBase<std::map<Time, _EntitySnapshotT>, _Derived>;
 
     public:
+        using EntitySnapshotT = _EntitySnapshotT;
+        using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT;
+
         EntityBase& operator=(const EntityBase& other)
         {
             other._copySelf(*this);
@@ -244,27 +247,27 @@ namespace armarx::armem
             return "entity";
         }
 
-        virtual Derived copy() const override
+        virtual _Derived copy() const override
         {
-            Derived d;
+            _Derived d;
             this->_copySelf(d);
             return d;
         }
 
-        virtual Derived copyEmpty() const override
+        virtual _Derived copyEmpty() const override
         {
-            Derived d;
+            _Derived d;
             this->_copySelfEmpty(d);
             return d;
         }
 
     protected:
-        virtual void _copySelf(Derived& other) const override
+        virtual void _copySelf(_Derived& other) const override
         {
             Base::_copySelf(other);
         }
 
-        virtual void _copySelfEmpty(Derived& other) const override
+        virtual void _copySelfEmpty(_Derived& other) const override
         {
             Base::_copySelfEmpty(other);
         }
diff --git a/source/RobotAPI/libraries/armem/core/base/EntityInstance.cpp b/source/RobotAPI/libraries/armem/core/base/EntityInstanceBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/base/EntityInstance.cpp
rename to source/RobotAPI/libraries/armem/core/base/EntityInstanceBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/EntityInstance.h b/source/RobotAPI/libraries/armem/core/base/EntityInstanceBase.h
similarity index 72%
rename from source/RobotAPI/libraries/armem/core/base/EntityInstance.h
rename to source/RobotAPI/libraries/armem/core/base/EntityInstanceBase.h
index 32f6bdbbd..872521f2a 100644
--- a/source/RobotAPI/libraries/armem/core/base/EntityInstance.h
+++ b/source/RobotAPI/libraries/armem/core/base/EntityInstanceBase.h
@@ -1,27 +1,23 @@
 #pragma once
 
-#include <RobotAPI/interface/aron.h>
-#include <RobotAPI/libraries/aron/core/navigator/data/container/Dict.h>
-
 #include "../../core/Time.h"
 
 #include "../Commit.h"
 #include "detail/MemoryItem.h"
 
 
-namespace armarx::armem
+namespace armarx::armem::base
 {
     /**
      * @brief Data of a single entity instance.
      */
-    template <class Derived>
+    template <class _Derived>
     class EntityInstanceBase :
-        virtual public armarx::armem::detail::MemoryItem
+        virtual public detail::MemoryItem
     {
-        using Base = armarx::armem::detail::MemoryItem;
+        using Base = detail::MemoryItem;
 
     public:
-
         EntityInstanceBase& operator=(const EntityInstanceBase& other)
         {
             //other._copySelf(*this);
@@ -39,9 +35,9 @@ namespace armarx::armem
         }
 
         // Copying
-        virtual Derived copy() const
+        virtual _Derived copy() const
         {
-            Derived d;
+            _Derived d;
             this->_copySelf(d);
             return d;
         }
@@ -53,7 +49,7 @@ namespace armarx::armem
          */
         virtual void update(const EntityUpdate& update, int index) = 0;
 
-        virtual bool equalsDeep(const Derived& other) const = 0;
+        virtual bool equalsDeep(const _Derived& other) const = 0;
 
         std::string getLevelName() const override
         {
@@ -66,7 +62,7 @@ namespace armarx::armem
         }
 
     protected:
-        virtual void _copySelf(Derived& other) const
+        virtual void _copySelf(_Derived& other) const
         {
             Base::_copySelf(other);
         }
diff --git a/source/RobotAPI/libraries/armem/core/base/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/base/EntitySnapshot.cpp
rename to source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/EntitySnapshot.h b/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h
similarity index 95%
rename from source/RobotAPI/libraries/armem/core/base/EntitySnapshot.h
rename to source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h
index 341b1e448..1f74f36d0 100644
--- a/source/RobotAPI/libraries/armem/core/base/EntitySnapshot.h
+++ b/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h
@@ -6,22 +6,23 @@
 #include "../MemoryID.h"
 #include "../Time.h"
 
-#include "EntityInstance.h"
-#include "detail/MemoryContainer.h"
+#include "EntityInstanceBase.h"
+#include "detail/MemoryContainerBase.h"
 
 
-namespace armarx::armem
+namespace armarx::armem::base
 {
     /**
      * @brief Data of an entity at one point in time.
      */
-    template <class _EntityInstanceT, class Derived>
+    template <class _EntityInstanceT, class _Derived>
     class EntitySnapshotBase :
-        virtual public detail::MemoryContainerBase<std::vector<_EntityInstanceT>, Derived>
+        virtual public detail::MemoryContainerBase<std::vector<_EntityInstanceT>, _Derived>
     {
-        using Base = detail::MemoryContainerBase<std::vector<_EntityInstanceT>, Derived>;
+        using Base = detail::MemoryContainerBase<std::vector<_EntityInstanceT>, _Derived>;
 
     public:
+        using EntityInstanceT = _EntityInstanceT;
 
         EntitySnapshotBase& operator=(const EntitySnapshotBase& other)
         {
diff --git a/source/RobotAPI/libraries/armem/core/base/Memory.cpp b/source/RobotAPI/libraries/armem/core/base/MemoryBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/base/Memory.cpp
rename to source/RobotAPI/libraries/armem/core/base/MemoryBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/Memory.h b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
similarity index 89%
rename from source/RobotAPI/libraries/armem/core/base/Memory.h
rename to source/RobotAPI/libraries/armem/core/base/MemoryBase.h
index 99e820796..bb7d5a8b9 100644
--- a/source/RobotAPI/libraries/armem/core/base/Memory.h
+++ b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
@@ -3,24 +3,28 @@
 #include <map>
 #include <string>
 
-#include "CoreSegment.h"
-#include "detail/EntityContainer.h"
+#include "CoreSegmentBase.h"
+#include "detail/EntityContainerBase.h"
 
-namespace armarx::armem
+namespace armarx::armem::base
 {
 
     /**
      * @brief Data of a memory consisting of multiple core segments.
      */
-    template <class _CoreSegmentT, class Derived>
+    template <class _CoreSegmentT, class _Derived>
     class MemoryBase :
-        virtual public detail::EntityContainerBase<_CoreSegmentT, typename _CoreSegmentT::ProviderSegmentT::EntityT, Derived>
+        virtual public detail::EntityContainerBase<_CoreSegmentT, typename _CoreSegmentT::ProviderSegmentT::EntityT, _Derived>
     {
-        using Base = detail::EntityContainerBase<_CoreSegmentT, typename _CoreSegmentT::ProviderSegmentT::EntityT, Derived>;
-
-        using _EntityT = typename _CoreSegmentT::ProviderSegmentT::EntityT;
+        using Base = detail::EntityContainerBase<_CoreSegmentT, typename _CoreSegmentT::ProviderSegmentT::EntityT, _Derived>;
 
     public:
+        using CoreSegmentT = _CoreSegmentT;
+        using ProviderSegmentT = typename CoreSegmentT::ProviderSegmentT;
+        using EntityT = typename ProviderSegmentT::EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
+        using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT;
+
         MemoryBase& operator=(const MemoryBase& other)
         {
             other._copySelf(*this);
@@ -73,7 +77,7 @@ namespace armarx::armem
         }
 
         using Base::_checkContainerName;
-        const _EntityT& getEntity(const MemoryID& id) const override
+        const EntityT& getEntity(const MemoryID& id) const override
         {
             _checkContainerName(id.memoryName, this->name());
             return getCoreSegment(id.coreSegmentName).getEntity(id);
diff --git a/source/RobotAPI/libraries/armem/core/base/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/base/ProviderSegment.cpp
rename to source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
similarity index 92%
rename from source/RobotAPI/libraries/armem/core/base/ProviderSegment.h
rename to source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
index e2e789c5f..25ed0e585 100644
--- a/source/RobotAPI/libraries/armem/core/base/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
@@ -3,25 +3,28 @@
 #include <map>
 #include <string>
 
-#include "Entity.h"
-#include "detail/TypedEntityContainer.h"
+#include "EntityBase.h"
+#include "detail/TypedEntityContainerBase.h"
 #include "detail/MaxHistorySize.h"
 
 
-namespace armarx::armem
+namespace armarx::armem::base
 {
 
     /**
      * @brief Data of a provider segment containing multiple entities.
      */
-    template <class _EntityT, class Derived>
+    template <class _EntityT, class _Derived>
     class ProviderSegmentBase :
-        virtual public detail::TypedEntityContainerBase<_EntityT, _EntityT, Derived>,
-        virtual public armarx::armem::detail::MaxHistorySize
+        virtual public detail::TypedEntityContainerBase<_EntityT, _EntityT, _Derived>,
+        virtual public detail::MaxHistorySize
     {
-        using Base = detail::TypedEntityContainerBase<_EntityT, _EntityT, Derived>;
+        using Base = detail::TypedEntityContainerBase<_EntityT, _EntityT, _Derived>;
 
     public:
+        using EntityT = _EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
+        using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT;
 
         ProviderSegmentBase& operator=(const ProviderSegmentBase& other)
         {
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.cpp b/source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.cpp
deleted file mode 100644
index 43ade411e..000000000
--- a/source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "EntityContainer.h"
-
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-
-namespace armarx::armem::detail
-{
-
-
-}
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/detail/EntityContainer.cpp b/source/RobotAPI/libraries/armem/core/base/detail/EntityContainerBase.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/core/workingMemory/detail/EntityContainer.cpp
rename to source/RobotAPI/libraries/armem/core/base/detail/EntityContainerBase.cpp
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.h b/source/RobotAPI/libraries/armem/core/base/detail/EntityContainerBase.h
similarity index 74%
rename from source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.h
rename to source/RobotAPI/libraries/armem/core/base/detail/EntityContainerBase.h
index fd2c66107..0f28deeef 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/EntityContainer.h
+++ b/source/RobotAPI/libraries/armem/core/base/detail/EntityContainerBase.h
@@ -3,13 +3,13 @@
 #include "../../Commit.h"
 #include "../../error/ArMemError.h"
 
-#include "MemoryContainer.h"
+#include "MemoryContainerBase.h"
 
-#include "../Entity.h"
-#include "../EntitySnapshot.h"
+#include "../EntityBase.h"
+#include "../EntitySnapshotBase.h"
 
 
-namespace armarx::armem::detail
+namespace armarx::armem::base::detail
 {
 
     /**
@@ -17,16 +17,17 @@ namespace armarx::armem::detail
      *
      * Can be updated by multiple entity updates.
      */
-    template <class _ValueT, class _EntityT, class Derived>
+    template <class _ValueT, class _EntityT, class _Derived>
     class EntityContainerBase :
-        virtual public MemoryContainerBase<std::map<std::string, _ValueT>, Derived>
+        virtual public MemoryContainerBase<std::map<std::string, _ValueT>, _Derived>
     {
-        using Base = MemoryContainerBase<std::map<std::string, _ValueT>, Derived>;
-
-        using _EntitySnapshotT = typename _EntityT::EntitySnapshotT;
-        using _EntityInstanceT = typename _EntitySnapshotT::EntityInstanceT;
+        using Base = MemoryContainerBase<std::map<std::string, _ValueT>, _Derived>;
 
     public:
+        using Derived = _Derived;
+        using EntitySnapshotT = typename _EntityT::EntitySnapshotT;
+        using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT;
+
         EntityContainerBase& operator=(const EntityContainerBase& other)
         {
             other._copySelf(*this);
@@ -76,12 +77,12 @@ namespace armarx::armem::detail
          * @return The entity snapshot.
          * @throw An exception deriving from `armem::error::ArMemError` if the snapshot is missing.
          */
-        virtual _EntitySnapshotT& getEntitySnapshot(const MemoryID& id)
+        virtual EntitySnapshotT& getEntitySnapshot(const MemoryID& id)
         {
-            return const_cast<_EntitySnapshotT&>(const_cast<const EntityContainerBase*>(this)->getEntitySnapshot(id));
+            return const_cast<EntitySnapshotT&>(const_cast<const EntityContainerBase*>(this)->getEntitySnapshot(id));
         }
 
-        virtual const _EntitySnapshotT& getEntitySnapshot(const MemoryID& id) const
+        virtual const EntitySnapshotT& getEntitySnapshot(const MemoryID& id) const
         {
             const _EntityT& entity = getEntity(id);
 
@@ -95,12 +96,12 @@ namespace armarx::armem::detail
             }
         }
 
-        virtual _EntityInstanceT& getEntityInstance(const MemoryID& id)
+        virtual EntityInstanceT& getEntityInstance(const MemoryID& id)
         {
             return getEntitySnapshot(id).getInstance(id);
         }
 
-        virtual const _EntityInstanceT& getEntityInstance(const MemoryID& id) const
+        virtual const EntityInstanceT& getEntityInstance(const MemoryID& id) const
         {
             return getEntitySnapshot(id).getInstance(id);
         }
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.cpp b/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.cpp
index cdd34e3be..4fe12f7e2 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.cpp
+++ b/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.cpp
@@ -1,7 +1,7 @@
 #include "MaxHistorySize.h"
 
 
-namespace armarx::armem::detail
+namespace armarx::armem::base::detail
 {
     MaxHistorySize::~MaxHistorySize()
     {
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.h b/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.h
index d96e73296..edbc12fa6 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.h
+++ b/source/RobotAPI/libraries/armem/core/base/detail/MaxHistorySize.h
@@ -2,7 +2,7 @@
 
 
 
-namespace armarx::armem::detail
+namespace armarx::armem::base::detail
 {
     class MaxHistorySize
     {
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.cpp b/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.cpp
deleted file mode 100644
index 9fd73048f..000000000
--- a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "MemoryContainer.h"
-
-
-namespace armarx::armem::detail
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.cpp b/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.h b/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h
similarity index 90%
rename from source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.h
rename to source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h
index c8454892d..e29be04a3 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainer.h
+++ b/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h
@@ -7,28 +7,26 @@
 #include "MemoryItem.h"
 
 
-namespace armarx::armem::detail
+namespace armarx::armem::base::detail
 {
 
     /**
      * @class Provides default implmentations of `MemoryContainer`, as well as
      * iterators (which requires a template).
      */
-    template <class _ContainerT, class Derived>
+    template <class _ContainerT, class _Derived>
     class MemoryContainerBase :
-        virtual public armarx::armem::detail::MemoryItem
+        virtual public MemoryItem
     {
-        using Base = armarx::armem::detail::MemoryItem;
+        using Base = MemoryItem;
 
     public:
+        using Derived = _Derived;
         using ContainerT = _ContainerT;
 
     public:
         MemoryContainerBase()
         {}
-        /*MemoryContainerBase(const MemoryID& id) :
-            Base(id)
-        {}*/
         MemoryContainerBase(const MemoryContainerBase<ContainerT, Derived>& o) :
             MemoryItem(o.id),
             container(o.container)
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MemoryItem.h b/source/RobotAPI/libraries/armem/core/base/detail/MemoryItem.h
index e60f42dc1..9749e275a 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/MemoryItem.h
+++ b/source/RobotAPI/libraries/armem/core/base/detail/MemoryItem.h
@@ -5,7 +5,7 @@
 #include "../../MemoryID.h"
 
 
-namespace armarx::armem::detail
+namespace armarx::armem::base::detail
 {
 
     /**
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainerBase.cpp b/source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainerBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainer.h b/source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainerBase.h
similarity index 66%
rename from source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainer.h
rename to source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainerBase.h
index 3c067aca8..f4c511da0 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainer.h
+++ b/source/RobotAPI/libraries/armem/core/base/detail/TypedEntityContainerBase.h
@@ -1,32 +1,33 @@
 #pragma once
 
-#include "EntityContainer.h"
+#include "EntityContainerBase.h"
 
 #include <RobotAPI/libraries/aron/core/navigator/type/container/Object.h>
 
-namespace armarx::armem::detail
+namespace armarx::armem::base::detail
 {
 
     /**
      * @brief An entity container with a specific (Aron) type.
      */
-    template <class _ValueT, class _EntityT, class Derived>
+    template <class _ValueT, class _EntityT, class _Derived>
     class TypedEntityContainerBase :
-        virtual public EntityContainerBase<_ValueT, _EntityT, Derived>
+        virtual public EntityContainerBase<_ValueT, _EntityT, _Derived>
     {
-        using Base = EntityContainerBase<_ValueT, _EntityT, Derived>;
-
-        using _EntitySnapshotT = typename _EntityT::EntitySnapshotT;
-        using _EntityInstanceT = typename _EntitySnapshotT::EntityInstanceT;
+        using Base = EntityContainerBase<_ValueT, _EntityT, _Derived>;
 
     public:
+        using Derived = _Derived;
+        using EntitySnapshotT = typename _EntityT::EntitySnapshotT;
+        using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT;
+
         TypedEntityContainerBase(aron::typenavigator::ObjectNavigatorPtr aronType = nullptr) :
             aronType(aronType)
         {}
 
-        TypedEntityContainerBase(const TypedEntityContainerBase<_ValueT, _EntityT, Derived>& other) :
+        TypedEntityContainerBase(const TypedEntityContainerBase<_ValueT, _EntityT, _Derived>& other) :
             MemoryItem(other),
-            MemoryContainerBase<std::map<std::string, _ValueT>, Derived>(other),
+            MemoryContainerBase<std::map<std::string, _ValueT>, _Derived>(other),
             aronType(other.aronType)
         {}
 
@@ -46,28 +47,28 @@ namespace armarx::armem::detail
             return aronType != nullptr;
         }
 
-        virtual Derived copy() const override
+        virtual _Derived copy() const override
         {
-            Derived d;
+            _Derived d;
             this->_copySelf(d);
             return d;
         }
 
-        virtual Derived copyEmpty() const override
+        virtual _Derived copyEmpty() const override
         {
-            Derived d;
+            _Derived d;
             this->_copySelfEmpty(d);
             return d;
         }
 
     protected:
-        virtual void _copySelf(Derived& other) const override
+        virtual void _copySelf(_Derived& other) const override
         {
             Base::_copySelf(other);
             other.aronType = aronType;
         }
 
-        virtual void _copySelfEmpty(Derived& other) const override
+        virtual void _copySelfEmpty(_Derived& other) const override
         {
             Base::_copySelfEmpty(other);
             other.aronType = aronType;
diff --git a/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp
deleted file mode 100644
index 6de4d6e59..000000000
--- a/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "ice_conversions.h"
-
-using namespace armarx::armem::workingmemory;
-
-namespace armarx
-{
-    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::DictNavigator::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::ObjectNavigator::DynamicCastAndCheck(
-                                             aron::typenavigator::Navigator::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::ObjectNavigator::DynamicCastAndCheck(
-                                         aron::typenavigator::Navigator::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/base/ice_conversions.h b/source/RobotAPI/libraries/armem/core/base/ice_conversions.h
deleted file mode 100644
index e5996b001..000000000
--- a/source/RobotAPI/libraries/armem/core/base/ice_conversions.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-
-#include <RobotAPI/interface/armem/commit.h>
-#include <RobotAPI/interface/armem/memory.h>
-
-#include "../ice_conversions.h"
-
-#include "Memory.h"
-
-
-namespace armarx::armem
-{
-    void toIce(data::EntityInstanceMetadata& ice, const workingmemory::EntityInstanceMetadata& metadata);
-    void fromIce(const data::EntityInstanceMetadata& ice, workingmemory::EntityInstanceMetadata& metadata);
-
-    void toIce(data::EntityInstance& ice, const workingmemory::EntityInstance& data);
-    void fromIce(const data::EntityInstance& ice, workingmemory::EntityInstance& data);
-
-
-    void toIce(data::EntitySnapshot& ice, const workingmemory::EntitySnapshot& snapshot);
-    void fromIce(const data::EntitySnapshot& ice, workingmemory::EntitySnapshot& snapshot);
-
-    void toIce(data::Entity& ice, const workingmemory::Entity& entity);
-    void fromIce(const data::Entity& ice, workingmemory::Entity& entity);
-
-
-    void toIce(data::ProviderSegment& ice, const workingmemory::ProviderSegment& providerSegment);
-    void fromIce(const data::ProviderSegment& ice, workingmemory::ProviderSegment& providerSegment);
-
-    void toIce(data::CoreSegment& ice, const workingmemory::CoreSegment& coreSegment);
-    void fromIce(const data::CoreSegment& ice, workingmemory::CoreSegment& coreSegment);
-
-    void toIce(data::Memory& ice, const workingmemory::Memory& memory);
-    void fromIce(const data::Memory& ice, workingmemory::Memory& memory);
-}
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
similarity index 69%
rename from source/RobotAPI/libraries/armem/core/diskMemory/CoreSegment.cpp
rename to source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
index e8be60e6c..369dab760 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     CoreSegment::CoreSegment()
@@ -13,27 +13,27 @@ namespace armarx::armem::diskMemory
     }
 
     CoreSegment::CoreSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(MemoryID().withCoreSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(MemoryID().withCoreSegmentName(name), aronType)
     {
     }
 
     CoreSegment::CoreSegment(const std::string& name, const MemoryID& parentID, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(parentID.withCoreSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(parentID.withCoreSegmentName(name), aronType)
     {
     }
 
     CoreSegment::CoreSegment(const MemoryID& id, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(id),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(id, aronType)
+        base::detail::MemoryItem(id),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(id, aronType)
     {
     }
 
     CoreSegment::CoreSegment(const CoreSegment& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, ProviderSegment>, CoreSegment>(other),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, ProviderSegment>, CoreSegment>(other),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(other)
     {
     }
 
@@ -45,7 +45,7 @@ namespace armarx::armem::diskMemory
 
     std::filesystem::path CoreSegment::_fullPath() const
     {
-        if(path)
+        if (path)
         {
             return _fullPath(*path);
         }
@@ -57,9 +57,9 @@ namespace armarx::armem::diskMemory
         return path / id.memoryName / id.coreSegmentName;
     }
 
-    workingmemory::CoreSegment CoreSegment::convert() const
+    wm::CoreSegment CoreSegment::convert() const
     {
-        workingmemory::CoreSegment m;
+        wm::CoreSegment m;
         for (const auto& [_, s] : container)
         {
             m.addProviderSegment(s.convert(aronType));
@@ -69,12 +69,12 @@ namespace armarx::armem::diskMemory
 
     void CoreSegment::reload(const std::shared_ptr<std::filesystem::path>& p_ptr)
     {
-        if(!p_ptr)
+        if (!p_ptr)
         {
             ARMARX_WARNING << "The entered is NULL.";
         }
         std::filesystem::path p = _fullPath(*p_ptr);
-        if(std::filesystem::is_regular_file(p))
+        if (std::filesystem::is_regular_file(p))
         {
             ARMARX_ERROR << "The entered path is leading to a file! Abort due to error.";
         }
@@ -82,7 +82,7 @@ namespace armarx::armem::diskMemory
         container.clear();
         path = p_ptr;
 
-        if(!std::filesystem::exists(p))
+        if (!std::filesystem::exists(p))
         {
             ARMARX_INFO << "The entered path does not exist. Assuming an empty container.";
         }
@@ -90,14 +90,14 @@ namespace armarx::armem::diskMemory
         {
             for (const auto& d : std::filesystem::directory_iterator(p))
             {
-                if(d.is_directory())
+                if (d.is_directory())
                 {
                     std::string k = d.path().filename();
                     auto wms = container.emplace(std::make_pair(k, id.withProviderSegmentName(k)));
                     wms.first->second.reload(p_ptr);
                 }
 
-                if(d.is_regular_file())
+                if (d.is_regular_file())
                 {
                     readAronType(d.path());
                 }
@@ -105,7 +105,7 @@ namespace armarx::armem::diskMemory
         }
     }
 
-    void CoreSegment::append(const workingmemory::CoreSegment& m)
+    void CoreSegment::append(const wm::CoreSegment& m)
     {
         std::filesystem::create_directories(_fullPath());
         writeAronType(_fullPath());
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h
similarity index 68%
rename from source/RobotAPI/libraries/armem/core/diskMemory/CoreSegment.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h
index d5a8314d2..f26c01c67 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h
@@ -2,28 +2,27 @@
 
 #include <filesystem>
 
-#include "../base/CoreSegment.h"
+#include "../base/CoreSegmentBase.h"
 #include "detail/TypedEntityContainer.h"
 
 #include "ProviderSegment.h"
 
-#include "../workingMemory/CoreSegment.h"
+#include "../workingmemory/CoreSegment.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     /**
      * @brief Data of a core segment containing multiple provider segments.
      */
     class CoreSegment :
-            virtual public CoreSegmentBase<ProviderSegment, CoreSegment>,
-            virtual public detail::TypedEntityContainer<ProviderSegment, CoreSegment>
+        virtual public base::CoreSegmentBase<ProviderSegment, CoreSegment>,
+        virtual public detail::TypedEntityContainer<ProviderSegment, CoreSegment>
     {
-    public:
-        using Base = CoreSegmentBase<ProviderSegment, CoreSegment>;
-        using ProviderSegmentT = ProviderSegment;
+        using Base = base::CoreSegmentBase<ProviderSegment, CoreSegment>;
 
+    public:
         CoreSegment();
         CoreSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         CoreSegment(const std::string& name, const MemoryID& parentID, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
@@ -33,11 +32,11 @@ namespace armarx::armem::diskMemory
         CoreSegment& operator=(const CoreSegment& other);
 
         // Conversion
-        workingmemory::CoreSegment convert() const;
+        wm::CoreSegment convert() const;
 
         // Filesystem connection
         void reload(const std::shared_ptr<std::filesystem::path>&);
-        void append(const workingmemory::CoreSegment&);
+        void append(const wm::CoreSegment&);
 
     private:
         std::filesystem::path _fullPath() const;
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/Entity.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/Entity.cpp
similarity index 78%
rename from source/RobotAPI/libraries/armem/core/diskMemory/Entity.cpp
rename to source/RobotAPI/libraries/armem/core/diskmemory/Entity.cpp
index c2c8982a8..3847f0af9 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/Entity.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/Entity.cpp
@@ -1,6 +1,6 @@
 #include "Entity.h"
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     Entity::Entity()
@@ -8,18 +8,18 @@ namespace armarx::armem::diskMemory
     }
 
     Entity::Entity(const std::string& name, const MemoryID& parentID) :
-        armarx::armem::detail::MemoryItem(parentID.withEntityName(name))
+        base::detail::MemoryItem(parentID.withEntityName(name))
     {
     }
 
     Entity::Entity(const MemoryID& id) :
-        armarx::armem::detail::MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
     Entity::Entity(const Entity& other) :
-        armarx::armem::detail::MemoryItem(other),
-        armarx::armem::detail::MemoryContainerBase<std::map<Time, EntitySnapshot>, Entity>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<Time, EntitySnapshot>, Entity>(other)
     {
     }
 
@@ -31,7 +31,7 @@ namespace armarx::armem::diskMemory
 
     std::filesystem::path Entity::_fullPath() const
     {
-        if(path)
+        if (path)
         {
             return _fullPath(*path);
         }
@@ -43,9 +43,9 @@ namespace armarx::armem::diskMemory
         return path / id.memoryName / id.coreSegmentName / id.providerSegmentName / id.entityName;
     }
 
-    workingmemory::Entity Entity::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
+    wm::Entity Entity::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
     {
-        workingmemory::Entity m;
+        wm::Entity m;
         for (const auto& [_, s] : container)
         {
             m.addSnapshot(s.convert(expectedStructure));
@@ -55,12 +55,12 @@ namespace armarx::armem::diskMemory
 
     void Entity::reload(const std::shared_ptr<std::filesystem::path>& p_ptr)
     {
-        if(!p_ptr)
+        if (!p_ptr)
         {
             ARMARX_WARNING << "The entered is NULL.";
         }
         std::filesystem::path p = _fullPath(*p_ptr);
-        if(std::filesystem::is_regular_file(p))
+        if (std::filesystem::is_regular_file(p))
         {
             ARMARX_ERROR << "The entered path is leading to a file! Abort due to error.";
         }
@@ -68,7 +68,7 @@ namespace armarx::armem::diskMemory
         container.clear();
         path = p_ptr;
 
-        if(!std::filesystem::exists(p))
+        if (!std::filesystem::exists(p))
         {
             ARMARX_INFO << "The entered path does not exist. Assuming an empty container.";
         }
@@ -76,7 +76,7 @@ namespace armarx::armem::diskMemory
         {
             for (const auto& d : std::filesystem::directory_iterator(p))
             {
-                if(d.is_directory())
+                if (d.is_directory())
                 {
                     std::string k = d.path().filename();
                     armem::Time t = armem::Time::microSeconds(std::stol(k));
@@ -87,7 +87,7 @@ namespace armarx::armem::diskMemory
         }
     }
 
-    void Entity::append(const workingmemory::Entity& m)
+    void Entity::append(const wm::Entity& m)
     {
         std::filesystem::create_directories(_fullPath());
         for (const auto& [k, s] : m.container)
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/Entity.h b/source/RobotAPI/libraries/armem/core/diskmemory/Entity.h
similarity index 77%
rename from source/RobotAPI/libraries/armem/core/diskMemory/Entity.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/Entity.h
index 391eefb05..756f3eb69 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/Entity.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/Entity.h
@@ -2,14 +2,14 @@
 
 #include <filesystem>
 
-#include "../base/Entity.h"
+#include "../base/EntityBase.h"
 
 #include "EntitySnapshot.h"
 
-#include "../workingMemory/Entity.h"
+#include "../workingmemory/Entity.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
     /**
      * @brief An entity over a period of time.
@@ -31,13 +31,11 @@ namespace armarx::armem::diskMemory
      * each containing a single `AronData` object of a specific `AronType`.
      */
     class Entity :
-        virtual public EntityBase<EntitySnapshot, Entity>
+        virtual public base::EntityBase<EntitySnapshot, Entity>
     {
+        using Base = base::EntityBase<EntitySnapshot, Entity>;
 
     public:
-        using Base = EntityBase<EntitySnapshot, Entity>;
-        using EntitySnapshotT = EntitySnapshot;
-
         Entity();
         Entity(const std::string& name, const MemoryID& parentID = {});
         Entity(const MemoryID& id);
@@ -48,11 +46,11 @@ namespace armarx::armem::diskMemory
         Entity& operator=(const Entity& other);
 
         // Conversion
-        workingmemory::Entity convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
+        wm::Entity convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
 
         // Filesystem connection
         void reload(const std::shared_ptr<std::filesystem::path>&);
-        void append(const workingmemory::Entity&);
+        void append(const wm::Entity&);
 
     private:
         std::filesystem::path _fullPath() const;
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/EntityInstance.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp
similarity index 88%
rename from source/RobotAPI/libraries/armem/core/diskMemory/EntityInstance.cpp
rename to source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp
index dc131b44b..43831ad04 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/EntityInstance.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp
@@ -11,14 +11,14 @@
 #include <RobotAPI/libraries/aron/core/io/dataIO/reader/nlohmannJSON/NlohmannJSONReader.h>
 #include <RobotAPI/libraries/aron/core/io/dataIO/writer/nlohmannJSON/NlohmannJSONWriter.h>
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
     EntityInstance::EntityInstance()
     {
     }
 
     EntityInstance::EntityInstance(const EntityInstance& other) :
-        MemoryItem(other.id)
+        base::detail::MemoryItem(other.id)
     {
     }
 
@@ -28,7 +28,7 @@ namespace armarx::armem::diskMemory
     }
 
     EntityInstance::EntityInstance(const MemoryID& id) :
-        MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
@@ -64,7 +64,7 @@ namespace armarx::armem::diskMemory
 
     std::filesystem::path EntityInstance::_fullPath() const
     {
-        if(path)
+        if (path)
         {
             return _fullPath(*path);
         }
@@ -76,12 +76,12 @@ namespace armarx::armem::diskMemory
         return path / id.memoryName / id.coreSegmentName / id.providerSegmentName / id.entityName / std::to_string(id.timestamp.toMicroSeconds()) / std::to_string(id.instanceIndex);
     }
 
-    workingmemory::EntityInstance EntityInstance::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
+    wm::EntityInstance EntityInstance::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
     {
         std::filesystem::path p = _fullPath();
         std::filesystem::path d = p / (std::string(DATA_FILENAME) + ".json");
 
-        if(std::filesystem::is_regular_file(d))
+        if (std::filesystem::is_regular_file(d))
         {
             std::ifstream ifs(d);
             std::string file_content((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));
@@ -101,12 +101,12 @@ namespace armarx::armem::diskMemory
 
     void EntityInstance::reload(const std::shared_ptr<std::filesystem::path>& p_ptr)
     {
-        if(!p_ptr)
+        if (!p_ptr)
         {
             ARMARX_WARNING << "The entered is NULL.";
         }
         std::filesystem::path p = _fullPath(*p_ptr);
-        if(!std::filesystem::is_directory(p))
+        if (!std::filesystem::is_directory(p))
         {
             ARMARX_ERROR << "The entered path is not leading to a file! This is an error since if the folder for an EntityInstance exists there must be a data file in it (containing at least the metadata).";
         }
@@ -116,14 +116,14 @@ namespace armarx::armem::diskMemory
         }
     }
 
-    void EntityInstance::setTo(const workingmemory::EntityInstance& m)
+    void EntityInstance::setTo(const wm::EntityInstance& m)
     {
         std::filesystem::path p = _fullPath();
         std::filesystem::create_directories(p);
 
         std::filesystem::path d = p / (std::string(DATA_FILENAME) + ".json");
 
-        if(std::filesystem::is_regular_file(d))
+        if (std::filesystem::is_regular_file(d))
         {
             std::filesystem::remove(d);
         }
@@ -141,10 +141,10 @@ namespace armarx::armem::diskMemory
     }
 
 
-    workingmemory::EntityInstance EntityInstance::unwrapData(const aron::datanavigator::DictNavigatorPtr& dataWrapped) const
+    wm::EntityInstance EntityInstance::unwrapData(const aron::datanavigator::DictNavigatorPtr& dataWrapped) const
     {
-        workingmemory::EntityInstance e(id);
-        workingmemory::EntityInstanceMetadata& metadata = e.metadata();
+        wm::EntityInstance e(id);
+        wm::EntityInstanceMetadata& metadata = e.metadata();
 
         if (dataWrapped->hasElement(DATA_WRAPPER_DATA_FIELD))
         {
@@ -167,10 +167,10 @@ namespace armarx::armem::diskMemory
         return e;
     }
 
-    aron::datanavigator::DictNavigatorPtr EntityInstance::wrapData(const workingmemory::EntityInstance& e) const
+    aron::datanavigator::DictNavigatorPtr EntityInstance::wrapData(const wm::EntityInstance& e) const
     {
         auto dataWrapped = std::make_shared<aron::datanavigator::DictNavigator>();
-        if(e.data())
+        if (e.data())
         {
             dataWrapped->addElement(DATA_WRAPPER_DATA_FIELD, e.data());
         }
@@ -179,7 +179,7 @@ namespace armarx::armem::diskMemory
         timeWrapped->setValue(Time::now().toMicroSeconds());
         dataWrapped->addElement(DATA_WRAPPER_TIME_STORED_FIELD, timeWrapped);
 
-        const workingmemory::EntityInstanceMetadata& metadata = e.metadata();
+        const wm::EntityInstanceMetadata& metadata = e.metadata();
         auto timeCreated = std::make_shared<aron::datanavigator::LongNavigator>();
         timeCreated->setValue(metadata.timeCreated.toMicroSeconds());
         dataWrapped->addElement(DATA_WRAPPER_TIME_CREATED_FIELD, timeCreated);
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/EntityInstance.h b/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.h
similarity index 75%
rename from source/RobotAPI/libraries/armem/core/diskMemory/EntityInstance.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.h
index 6eb97bd13..8e7a0fed1 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/EntityInstance.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.h
@@ -2,22 +2,21 @@
 
 #include <filesystem>
 
-#include "../base/EntityInstance.h"
+#include "../base/EntityInstanceBase.h"
 
-#include "../workingMemory/EntityInstance.h"
+#include "../workingmemory/EntityInstance.h"
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
     /**
      * @brief Data of a single entity instance.
      */
     class EntityInstance :
-        virtual public EntityInstanceBase<EntityInstance>
+        virtual public base::EntityInstanceBase<EntityInstance>
     {
+        using Base = base::EntityInstanceBase<EntityInstance>;
 
     public:
-        using Base = EntityInstanceBase<EntityInstance>;
-
         EntityInstance();
         EntityInstance(const EntityInstance&);
         EntityInstance(int index, const MemoryID& parentID = {});
@@ -37,11 +36,11 @@ namespace armarx::armem::diskMemory
         virtual EntityInstance copy() const override;
 
         // Conversion
-        workingmemory::EntityInstance convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
+        wm::EntityInstance convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
 
         // Filesystem connection
         void reload(const std::shared_ptr<std::filesystem::path>&);
-        void setTo(const workingmemory::EntityInstance&);
+        void setTo(const wm::EntityInstance&);
 
     protected:
         virtual void _copySelf(EntityInstance& other) const override;
@@ -50,8 +49,8 @@ namespace armarx::armem::diskMemory
         std::filesystem::path _fullPath() const;
         std::filesystem::path _fullPath(const std::filesystem::path&) const;
 
-        workingmemory::EntityInstance unwrapData(const aron::datanavigator::DictNavigatorPtr&) const;
-        aron::datanavigator::DictNavigatorPtr wrapData(const workingmemory::EntityInstance&) const;
+        wm::EntityInstance unwrapData(const aron::datanavigator::DictNavigatorPtr&) const;
+        aron::datanavigator::DictNavigatorPtr wrapData(const wm::EntityInstance&) const;
 
     public:
         std::shared_ptr<std::filesystem::path> path;
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp
similarity index 81%
rename from source/RobotAPI/libraries/armem/core/diskMemory/EntitySnapshot.cpp
rename to source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp
index 05e4bd68c..1f855d1a4 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/EntitySnapshot.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
 
@@ -19,13 +19,13 @@ namespace armarx::armem::diskMemory
     }
 
     EntitySnapshot::EntitySnapshot(const MemoryID& id) :
-        MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
     EntitySnapshot::EntitySnapshot(const EntitySnapshot& other) :
-        armarx::armem::detail::MemoryItem(other),
-        armarx::armem::detail::MemoryContainerBase<std::vector<EntityInstance>, EntitySnapshot>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::vector<EntityInstance>, EntitySnapshot>(other)
     {
     }
 
@@ -37,7 +37,7 @@ namespace armarx::armem::diskMemory
 
     std::filesystem::path EntitySnapshot::_fullPath() const
     {
-        if(path)
+        if (path)
         {
             return _fullPath(*path);
         }
@@ -49,9 +49,9 @@ namespace armarx::armem::diskMemory
         return path / id.memoryName / id.coreSegmentName / id.providerSegmentName / id.entityName / std::to_string(id.timestamp.toMicroSeconds());
     }
 
-    workingmemory::EntitySnapshot EntitySnapshot::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
+    wm::EntitySnapshot EntitySnapshot::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
     {
-        workingmemory::EntitySnapshot m;
+        wm::EntitySnapshot m;
         for (const auto& s : container)
         {
             m.addInstance(s.convert(expectedStructure));
@@ -61,12 +61,12 @@ namespace armarx::armem::diskMemory
 
     void EntitySnapshot::reload(const std::shared_ptr<std::filesystem::path>& p_ptr)
     {
-        if(!p_ptr)
+        if (!p_ptr)
         {
             ARMARX_WARNING << "The entered is NULL.";
         }
         std::filesystem::path p = _fullPath(*p_ptr);
-        if(!std::filesystem::is_directory(p))
+        if (!std::filesystem::is_directory(p))
         {
             ARMARX_ERROR << "The entered path is not leading to a directory! Every EntitySnapshot must at least contain one EntityInstance.";
         }
@@ -79,7 +79,7 @@ namespace armarx::armem::diskMemory
             for (int i = 0; i < 1000; ++i)
             {
                 std::filesystem::path d = p / std::to_string(i);
-                if(std::filesystem::is_directory(d))
+                if (std::filesystem::is_directory(d))
                 {
                     auto wms = container.emplace_back(id.withInstanceIndex(i));
                     wms.reload(p_ptr);
@@ -92,7 +92,7 @@ namespace armarx::armem::diskMemory
         }
     }
 
-    void EntitySnapshot::setTo(const workingmemory::EntitySnapshot& m)
+    void EntitySnapshot::setTo(const wm::EntitySnapshot& m)
     {
         std::filesystem::create_directories(_fullPath());
 
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/EntitySnapshot.h b/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.h
similarity index 64%
rename from source/RobotAPI/libraries/armem/core/diskMemory/EntitySnapshot.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.h
index d286ce8f5..5c3cf02ff 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/EntitySnapshot.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.h
@@ -2,27 +2,25 @@
 
 #include <filesystem>
 
-#include "../base/EntitySnapshot.h"
+#include "../base/EntitySnapshotBase.h"
 
 #include "EntityInstance.h"
 
-#include "../workingMemory/EntitySnapshot.h"
+#include "../workingmemory/EntitySnapshot.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     /**
      * @brief Data of an entity at one point in time.
      */
     class EntitySnapshot :
-        virtual public EntitySnapshotBase<EntityInstance, EntitySnapshot>
+        virtual public base::EntitySnapshotBase<EntityInstance, EntitySnapshot>
     {
+        using Base = base::EntitySnapshotBase<EntityInstance, EntitySnapshot>;
 
     public:
-        using Base = EntitySnapshotBase<EntityInstance, EntitySnapshot>;
-        using EntityInstanceT = EntityInstance;
-
         EntitySnapshot();
         EntitySnapshot(Time time, const MemoryID& parentID = {});
         EntitySnapshot(const MemoryID& id);
@@ -35,10 +33,10 @@ namespace armarx::armem::diskMemory
 
         // Conversion
         void reload(const std::shared_ptr<std::filesystem::path>&);
-        workingmemory::EntitySnapshot convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
+        wm::EntitySnapshot convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
 
         // MongoDB connection
-        void setTo(const workingmemory::EntitySnapshot&);
+        void setTo(const wm::EntitySnapshot&);
 
     private:
         std::filesystem::path _fullPath() const;
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/Memory.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp
similarity index 81%
rename from source/RobotAPI/libraries/armem/core/diskMemory/Memory.cpp
rename to source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp
index 0b99f1460..4ef34ffd1 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp
@@ -6,7 +6,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     Memory::Memory()
@@ -14,18 +14,18 @@ namespace armarx::armem::diskMemory
     }
 
     Memory::Memory(const std::string& name) :
-        armarx::armem::detail::MemoryItem(MemoryID().withMemoryName(name))
+        base::detail::MemoryItem(MemoryID().withMemoryName(name))
     {
     }
 
     Memory::Memory(const MemoryID& id) :
-        MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
     Memory::Memory(const Memory& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, CoreSegment>, Memory>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, CoreSegment>, Memory>(other)
     {
         *this = other;
     }
@@ -38,7 +38,7 @@ namespace armarx::armem::diskMemory
 
     std::filesystem::path Memory::_fullPath() const
     {
-        if(path)
+        if (path)
         {
             return _fullPath(*path);
         }
@@ -50,9 +50,9 @@ namespace armarx::armem::diskMemory
         return path / id.memoryName;
     }
 
-    workingmemory::Memory Memory::convert() const
+    wm::Memory Memory::convert() const
     {
-        workingmemory::Memory m;
+        wm::Memory m;
         for (const auto& [_, s] : container)
         {
             m.addCoreSegment(s.convert());
@@ -62,7 +62,7 @@ namespace armarx::armem::diskMemory
 
     void Memory::reload(const std::filesystem::path& p)
     {
-        if(std::filesystem::is_regular_file(p))
+        if (std::filesystem::is_regular_file(p))
         {
             ARMARX_ERROR << "The entered path is leading to a file! Abort due to error.";
         }
@@ -70,7 +70,7 @@ namespace armarx::armem::diskMemory
         container.clear();
         path = std::make_shared<std::filesystem::path>(p.parent_path());
 
-        if(!std::filesystem::exists(p))
+        if (!std::filesystem::exists(p))
         {
             ARMARX_INFO << "The entered path does not exist. Assuming an empty container.";
         }
@@ -80,7 +80,7 @@ namespace armarx::armem::diskMemory
 
             for (const auto& d : std::filesystem::directory_iterator(p))
             {
-                if(d.is_directory())
+                if (d.is_directory())
                 {
                     std::string k = d.path().filename();
                     auto wms = container.emplace(std::make_pair(k, id.withCoreSegmentName(k)));
@@ -90,7 +90,7 @@ namespace armarx::armem::diskMemory
         }
     }
 
-    void Memory::append(const workingmemory::Memory& m)
+    void Memory::append(const wm::Memory& m)
     {
         std::filesystem::create_directories(_fullPath());
         for (const auto& [k, s] : m.container)
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/Memory.h b/source/RobotAPI/libraries/armem/core/diskmemory/Memory.h
similarity index 66%
rename from source/RobotAPI/libraries/armem/core/diskMemory/Memory.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/Memory.h
index a32b1dcc1..32bd30fa6 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/Memory.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/Memory.h
@@ -2,25 +2,24 @@
 
 #include <filesystem>
 
-#include "../base/Memory.h"
+#include "../base/MemoryBase.h"
 
 #include "CoreSegment.h"
 
-#include "../workingMemory/Memory.h"
+#include "../workingmemory/Memory.h"
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     /**
      * @brief Data of a memory consisting of multiple core segments.
      */
     class Memory :
-        virtual public MemoryBase<CoreSegment, Memory>
+        virtual public base::MemoryBase<CoreSegment, Memory>
     {
-    public:
-        using Base = MemoryBase<CoreSegment, Memory>;
-        using CoreSegmentT = CoreSegment;
+        using Base = base::MemoryBase<CoreSegment, Memory>;
 
+    public:
         Memory();
         Memory(const std::string& name);
         Memory(const MemoryID& id);
@@ -29,11 +28,11 @@ namespace armarx::armem::diskMemory
         Memory& operator=(const Memory& other);
 
         // Conversion
-        workingmemory::Memory convert() const;
+        wm::Memory convert() const;
 
         // Filesystem connection
         void reload(const std::filesystem::path&);
-        void append(const workingmemory::Memory&);
+        void append(const wm::Memory&);
 
     private:
         std::filesystem::path _fullPath() const;
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
similarity index 69%
rename from source/RobotAPI/libraries/armem/core/diskMemory/ProviderSegment.cpp
rename to source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
index 0afa005a8..60a8268ee 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     ProviderSegment::ProviderSegment()
@@ -13,27 +13,27 @@ namespace armarx::armem::diskMemory
     }
 
     ProviderSegment::ProviderSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withProviderSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(MemoryID().withProviderSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withProviderSegmentName(name)),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(MemoryID().withProviderSegmentName(name), aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const std::string& name, const MemoryID parentID, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(parentID.withProviderSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(parentID.withProviderSegmentName(name), aronType)
+        base::detail::MemoryItem(parentID.withProviderSegmentName(name)),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(parentID.withProviderSegmentName(name), aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const MemoryID id, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(id),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(id, aronType)
+        base::detail::MemoryItem(id),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(id, aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const ProviderSegment& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, Entity>, ProviderSegment>(other),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, Entity>, ProviderSegment>(other),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(other)
     {
     }
 
@@ -45,7 +45,7 @@ namespace armarx::armem::diskMemory
 
     std::filesystem::path ProviderSegment::_fullPath() const
     {
-        if(path)
+        if (path)
         {
             return _fullPath(*path);
         }
@@ -57,12 +57,12 @@ namespace armarx::armem::diskMemory
         return path / id.memoryName / id.coreSegmentName / id.providerSegmentName;
     }
 
-    workingmemory::ProviderSegment ProviderSegment::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
+    wm::ProviderSegment ProviderSegment::convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const
     {
-        workingmemory::ProviderSegment m;
+        wm::ProviderSegment m;
         for (const auto& [_, s] : container)
         {
-            if(hasAronType())
+            if (hasAronType())
             {
                 m.addEntity(s.convert(aronType));
             }
@@ -76,12 +76,12 @@ namespace armarx::armem::diskMemory
 
     void ProviderSegment::reload(const std::shared_ptr<std::filesystem::path>& p_ptr)
     {
-        if(!p_ptr)
+        if (!p_ptr)
         {
             ARMARX_WARNING << "The entered is NULL.";
         }
         std::filesystem::path p = _fullPath(*p_ptr);
-        if(std::filesystem::is_regular_file(p))
+        if (std::filesystem::is_regular_file(p))
         {
             ARMARX_ERROR << "The entered path is leading to a file! Abort due to error.";
         }
@@ -89,7 +89,7 @@ namespace armarx::armem::diskMemory
         container.clear();
         path = p_ptr;
 
-        if(!std::filesystem::exists(p))
+        if (!std::filesystem::exists(p))
         {
             ARMARX_INFO << "The entered path does not exist. Assuming an empty container.";
         }
@@ -97,14 +97,14 @@ namespace armarx::armem::diskMemory
         {
             for (const auto& d : std::filesystem::directory_iterator(p))
             {
-                if(d.is_directory())
+                if (d.is_directory())
                 {
                     std::string k = d.path().filename();
                     auto wms = container.emplace(std::make_pair(k, id.withEntityName(k)));
                     wms.first->second.reload(p_ptr);
                 }
 
-                if(d.is_regular_file())
+                if (d.is_regular_file())
                 {
                     readAronType(d.path());
                 }
@@ -112,7 +112,7 @@ namespace armarx::armem::diskMemory
         }
     }
 
-    void ProviderSegment::append(const workingmemory::ProviderSegment& m)
+    void ProviderSegment::append(const wm::ProviderSegment& m)
     {
         std::filesystem::create_directories(_fullPath());
         writeAronType(_fullPath());
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h
similarity index 66%
rename from source/RobotAPI/libraries/armem/core/diskMemory/ProviderSegment.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h
index 2a2033d74..c3a5f1dfd 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h
@@ -2,28 +2,27 @@
 
 #include <filesystem>
 
-#include "../base/ProviderSegment.h"
+#include "../base/ProviderSegmentBase.h"
 #include "detail/TypedEntityContainer.h"
 
 #include "Entity.h"
 
-#include "../workingMemory/ProviderSegment.h"
+#include "../workingmemory/ProviderSegment.h"
 
 
-namespace armarx::armem::diskMemory
+namespace armarx::armem::d_ltm
 {
 
     /**
      * @brief Data of a provider segment containing multiple entities.
      */
     class ProviderSegment :
-            virtual public ProviderSegmentBase<Entity, ProviderSegment>,
-            virtual public detail::TypedEntityContainer<Entity, ProviderSegment>
+        virtual public base::ProviderSegmentBase<Entity, ProviderSegment>,
+        virtual public detail::TypedEntityContainer<Entity, ProviderSegment>
     {
-    public:
-        using Base = ProviderSegmentBase<Entity, ProviderSegment>;
-        using EntityT = Entity;
+        using Base = base::ProviderSegmentBase<Entity, ProviderSegment>;
 
+    public:
         ProviderSegment();
         ProviderSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         ProviderSegment(const std::string& name, const MemoryID parentID, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
@@ -33,11 +32,11 @@ namespace armarx::armem::diskMemory
         ProviderSegment& operator=(const ProviderSegment& other);
 
         // Conversion
-        workingmemory::ProviderSegment convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
+        wm::ProviderSegment convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
 
         // Filesystem connection
         void reload(const std::shared_ptr<std::filesystem::path>&);
-        void append(const workingmemory::ProviderSegment&);
+        void append(const wm::ProviderSegment&);
 
     private:
         std::filesystem::path _fullPath() const;
diff --git a/source/RobotAPI/libraries/armem/core/diskMemory/detail/TypedEntityContainer.h b/source/RobotAPI/libraries/armem/core/diskmemory/detail/TypedEntityContainer.h
similarity index 90%
rename from source/RobotAPI/libraries/armem/core/diskMemory/detail/TypedEntityContainer.h
rename to source/RobotAPI/libraries/armem/core/diskmemory/detail/TypedEntityContainer.h
index 205cffa96..f17bbc077 100644
--- a/source/RobotAPI/libraries/armem/core/diskMemory/detail/TypedEntityContainer.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/detail/TypedEntityContainer.h
@@ -3,7 +3,7 @@
 #include <iostream>
 #include <fstream>
 
-#include "../../base/detail/TypedEntityContainer.h"
+#include "../../base/detail/TypedEntityContainerBase.h"
 #include "../Entity.h"
 
 #include <RobotAPI/libraries/aron/core/navigator/type/container/Object.h>
@@ -13,7 +13,7 @@
 #include <RobotAPI/libraries/aron/core/io/typeIO/writer/navigator/NavigatorWriter.h>
 #include <RobotAPI/libraries/aron/core/io/typeIO/writer/nlohmannJSON/NlohmannJSONWriter.h>
 
-namespace armarx::armem::diskMemory::detail
+namespace armarx::armem::d_ltm::detail
 {
 
     /**
@@ -21,9 +21,9 @@ namespace armarx::armem::diskMemory::detail
      */
     template <class _ValueT, class Derived>
     class TypedEntityContainer :
-        virtual public armarx::armem::detail::TypedEntityContainerBase<_ValueT, Entity, Derived>
+        virtual public base::detail::TypedEntityContainerBase<_ValueT, Entity, Derived>
     {
-        using Base = armarx::armem::detail::TypedEntityContainerBase<_ValueT, Entity, Derived>;
+        using Base = base::detail::TypedEntityContainerBase<_ValueT, Entity, Derived>;
 
     public:
         TypedEntityContainer& operator=(const TypedEntityContainer& other)
@@ -56,9 +56,9 @@ namespace armarx::armem::diskMemory::detail
         using Base::aronType;
         void readAronType(const std::filesystem::path& d)
         {
-            if(std::filesystem::is_regular_file(d))
+            if (std::filesystem::is_regular_file(d))
             {
-                if(d.filename() == (std::string(TYPE_FILENAME) + ".json"))
+                if (d.filename() == (std::string(TYPE_FILENAME) + ".json"))
                 {
                     std::ifstream ifs(d);
                     std::string file_content((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));
@@ -74,7 +74,7 @@ namespace armarx::armem::diskMemory::detail
         using Base::hasAronType;
         void writeAronType(const std::filesystem::path& d)
         {
-            if(hasAronType())
+            if (hasAronType())
             {
                 std::ofstream ofs;
                 ofs.open(d);
diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/ice_conversions.cpp
index 32c881951..0a9774020 100644
--- a/source/RobotAPI/libraries/armem/core/ice_conversions.cpp
+++ b/source/RobotAPI/libraries/armem/core/ice_conversions.cpp
@@ -145,12 +145,12 @@ namespace armarx
     }
 
 
-    void armem::detail::toIceItem(data::detail::MemoryItem& ice, const MemoryItem& item)
+    void armem::detail::toIceItem(data::detail::MemoryItem& ice, const armem::base::detail::MemoryItem& item)
     {
         toIce(ice.id, item.id);
     }
 
-    void armem::detail::fromIceItem(const data::detail::MemoryItem& ice, MemoryItem& item)
+    void armem::detail::fromIceItem(const data::detail::MemoryItem& ice, armem::base::detail::MemoryItem& item)
     {
         fromIce(ice.id, item.id);
     }
diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions.h b/source/RobotAPI/libraries/armem/core/ice_conversions.h
index 6aa4ac524..874684cac 100644
--- a/source/RobotAPI/libraries/armem/core/ice_conversions.h
+++ b/source/RobotAPI/libraries/armem/core/ice_conversions.h
@@ -54,8 +54,8 @@ namespace armarx::armem
 
     namespace detail
     {
-        void toIceItem(data::detail::MemoryItem& ice, const MemoryItem& item);
-        void fromIceItem(const data::detail::MemoryItem& ice, MemoryItem& item);
+        void toIceItem(data::detail::MemoryItem& ice, const armem::base::detail::MemoryItem& item);
+        void fromIceItem(const data::detail::MemoryItem& ice, armem::base::detail::MemoryItem& item);
     }
 
 }
diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions_templates.h b/source/RobotAPI/libraries/armem/core/ice_conversions_templates.h
index dc5c3fff5..1001fd1f9 100644
--- a/source/RobotAPI/libraries/armem/core/ice_conversions_templates.h
+++ b/source/RobotAPI/libraries/armem/core/ice_conversions_templates.h
@@ -22,12 +22,29 @@ namespace armarx::armem
     }
 
 
-    // General return version
+    // Ice Handle
 
+    template <class IceT, class CppT>
+    void toIce(::IceInternal::Handle<IceT>& ice, const CppT& cpp)
+    {
+        ice = new IceT();
+        toIce(*ice, cpp);
+    }
+    template <class IceT, class CppT>
+    void fromIce(const ::IceInternal::Handle<IceT>& ice, CppT& cpp)
+    {
+        if (ice)
+        {
+            fromIce(*ice, cpp);
+        }
+    }
+
+
+    // General return version
     template <class IceT, class CppT>
     IceT toIce(const CppT& cpp)
     {
-        IceT ice = {};
+        IceT ice;
         toIce(ice, cpp);
         return ice;
     }
@@ -57,24 +74,6 @@ namespace armarx::armem
     }
 
 
-    // Ice Handle
-
-    template <class IceT, class CppT>
-    void toIce(::IceInternal::Handle<IceT>& ice, const CppT& cpp)
-    {
-        ice = new IceT();
-        toIce(*ice, cpp);
-    }
-    template <class IceT, class CppT>
-    void fromIce(const ::IceInternal::Handle<IceT>& ice, CppT& cpp)
-    {
-        if (ice)
-        {
-            fromIce(*ice, cpp);
-        }
-    }
-
-
     // Ice Handle <-> std::unique_ptr
 
     template <class IceT, class CppT>
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
similarity index 55%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/CoreSegment.cpp
rename to source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
index 5491d6f9a..b98a0d5ef 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     CoreSegment::CoreSegment()
@@ -13,27 +13,27 @@ namespace armarx::armem::longtermmemory
     }
 
     CoreSegment::CoreSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(MemoryID().withCoreSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(MemoryID().withCoreSegmentName(name), aronType)
     {
     }
 
     CoreSegment::CoreSegment(const std::string& name, const MemoryID& parentID, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(parentID.withCoreSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(parentID.withCoreSegmentName(name), aronType)
     {
     }
 
     CoreSegment::CoreSegment(const MemoryID& id, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(id),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(id, aronType)
+        base::detail::MemoryItem(id),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(id, aronType)
     {
     }
 
     CoreSegment::CoreSegment(const CoreSegment& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, ProviderSegment>, CoreSegment>(other),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, ProviderSegment>, CoreSegment>(other),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(other)
     {
     }
 
@@ -43,9 +43,9 @@ namespace armarx::armem::longtermmemory
         return *this;
     }
 
-    workingmemory::CoreSegment CoreSegment::convert() const
+    wm::CoreSegment CoreSegment::convert() const
     {
-        workingmemory::CoreSegment m;
+        wm::CoreSegment m;
         for (const auto& [_, s] : container)
         {
             m.addProviderSegment(s.convert());
@@ -53,7 +53,7 @@ namespace armarx::armem::longtermmemory
         return m;
     }
 
-    void CoreSegment::append(const workingmemory::CoreSegment& m)
+    void CoreSegment::append(const wm::CoreSegment& m)
     {
         for (const auto& [k, s] : m.container)
         {
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h
similarity index 63%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/CoreSegment.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h
index ed8b60c67..59bb7830d 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h
@@ -1,25 +1,24 @@
 #pragma once
 
-#include "../base/CoreSegment.h"
+#include "../base/CoreSegmentBase.h"
 
 #include "ProviderSegment.h"
 
-#include "../workingMemory/CoreSegment.h"
+#include "../workingmemory/CoreSegment.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     /**
      * @brief Data of a core segment containing multiple provider segments.
      */
     class CoreSegment :
-        virtual public CoreSegmentBase<ProviderSegment, CoreSegment>
+        virtual public base::CoreSegmentBase<ProviderSegment, CoreSegment>
     {
-    public:
-        using Base = CoreSegmentBase<ProviderSegment, CoreSegment>;
-        using ProviderSegmentT = ProviderSegment;
+        using Base = base::CoreSegmentBase<ProviderSegment, CoreSegment>;
 
+    public:
         CoreSegment();
         CoreSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         CoreSegment(const std::string& name, const MemoryID& parentID, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
@@ -29,10 +28,10 @@ namespace armarx::armem::longtermmemory
         CoreSegment& operator=(const CoreSegment& other);
 
         // Conversion
-        workingmemory::CoreSegment convert() const;
+        wm::CoreSegment convert() const;
 
         // MongoDB connection
-        void append(const workingmemory::CoreSegment&);
+        void append(const wm::CoreSegment&);
     };
 
 }
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/Entity.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp
similarity index 66%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/Entity.cpp
rename to source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp
index f6c73743e..c0de42c68 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/Entity.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp
@@ -1,6 +1,6 @@
 #include "Entity.h"
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     Entity::Entity()
@@ -8,18 +8,18 @@ namespace armarx::armem::longtermmemory
     }
 
     Entity::Entity(const std::string& name, const MemoryID& parentID) :
-        armarx::armem::detail::MemoryItem(parentID.withEntityName(name))
+        base::detail::MemoryItem(parentID.withEntityName(name))
     {
     }
 
     Entity::Entity(const MemoryID& id) :
-        armarx::armem::detail::MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
     Entity::Entity(const Entity& other) :
-        armarx::armem::detail::MemoryItem(other),
-        armarx::armem::detail::MemoryContainerBase<std::map<Time, EntitySnapshot>, Entity>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<Time, EntitySnapshot>, Entity>(other)
     {
     }
 
@@ -29,9 +29,9 @@ namespace armarx::armem::longtermmemory
         return *this;
     }
 
-    workingmemory::Entity Entity::convert() const
+    wm::Entity Entity::convert() const
     {
-        workingmemory::Entity m;
+        wm::Entity m;
         for (const auto& [_, s] : container)
         {
             m.addSnapshot(s.convert());
@@ -39,7 +39,7 @@ namespace armarx::armem::longtermmemory
         return m;
     }
 
-    void Entity::append(const workingmemory::Entity& m)
+    void Entity::append(const wm::Entity& m)
     {
         for (const auto& [k, s] : m.container)
         {
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/Entity.h b/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.h
similarity index 75%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/Entity.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/Entity.h
index edc46900e..79d81340e 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/Entity.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.h
@@ -1,13 +1,13 @@
 #pragma once
 
-#include "../base/Entity.h"
+#include "../base/EntityBase.h"
 
 #include "EntitySnapshot.h"
 
-#include "../workingMemory/Entity.h"
+#include "../workingmemory/Entity.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
     /**
      * @brief An entity over a period of time.
@@ -29,13 +29,11 @@ namespace armarx::armem::longtermmemory
      * each containing a single `AronData` object of a specific `AronType`.
      */
     class Entity :
-        virtual public EntityBase<EntitySnapshot, Entity>
+        virtual public base::EntityBase<EntitySnapshot, Entity>
     {
+        using Base = base::EntityBase<EntitySnapshot, Entity>;
 
     public:
-        using Base = EntityBase<EntitySnapshot, Entity>;
-        using EntitySnapshotT = EntitySnapshot;
-
         Entity();
         Entity(const std::string& name, const MemoryID& parentID = {});
         Entity(const MemoryID& id);
@@ -46,10 +44,10 @@ namespace armarx::armem::longtermmemory
         Entity& operator=(const Entity& other);
 
         // Conversion
-        workingmemory::Entity convert() const;
+        wm::Entity convert() const;
 
         // MongoDB connection
-        void append(const workingmemory::Entity&);
+        void append(const wm::Entity&);
     };
 
 }
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/EntityInstance.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/EntityInstance.cpp
similarity index 89%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/EntityInstance.cpp
rename to source/RobotAPI/libraries/armem/core/longtermmemory/EntityInstance.cpp
index d4770ded9..44bbca24d 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/EntityInstance.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/EntityInstance.cpp
@@ -2,7 +2,7 @@
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     bool EntityInstanceMetadata::operator==(const EntityInstanceMetadata& other) const
@@ -29,7 +29,7 @@ namespace armarx::armem::longtermmemory
     }
 
     EntityInstance::EntityInstance(const MemoryID& id) :
-        MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
@@ -69,13 +69,13 @@ namespace armarx::armem::longtermmemory
         other._metadata = _metadata;
     }
 
-    workingmemory::EntityInstance EntityInstance::convert() const
+    wm::EntityInstance EntityInstance::convert() const
     {
-        workingmemory::EntityInstance m;
+        wm::EntityInstance m;
         return m;
     }
 
-    void EntityInstance::setTo(const workingmemory::EntityInstance& m)
+    void EntityInstance::setTo(const wm::EntityInstance& m)
     {
         ARMARX_IMPORTANT << "Longtermmemory received an entity instance: " << m.id.str();
     }
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/EntityInstance.h b/source/RobotAPI/libraries/armem/core/longtermmemory/EntityInstance.h
similarity index 84%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/EntityInstance.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/EntityInstance.h
index 76e594567..ee94fbfbb 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/EntityInstance.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/EntityInstance.h
@@ -1,10 +1,10 @@
 #pragma once
 
-#include "../base/EntityInstance.h"
+#include "../base/EntityInstanceBase.h"
 
-#include "../workingMemory/EntityInstance.h"
+#include "../workingmemory/EntityInstance.h"
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     /**
@@ -34,12 +34,11 @@ namespace armarx::armem::longtermmemory
      * @brief Data of a single entity instance.
      */
     class EntityInstance :
-        virtual public EntityInstanceBase<EntityInstance>
+        virtual public base::EntityInstanceBase<EntityInstance>
     {
+        using Base = base::EntityInstanceBase<EntityInstance>;
 
     public:
-        using Base = EntityInstanceBase<EntityInstance>;
-
         EntityInstance();
         EntityInstance(const EntityInstance&);
         EntityInstance(int index, const MemoryID& parentID = {});
@@ -69,10 +68,10 @@ namespace armarx::armem::longtermmemory
         virtual EntityInstance copy() const override;
 
         // Conversion
-        workingmemory::EntityInstance convert() const;
+        wm::EntityInstance convert() const;
 
         // MongoDB connection
-        void setTo(const workingmemory::EntityInstance&);
+        void setTo(const wm::EntityInstance&);
 
     protected:
         virtual void _copySelf(EntityInstance& other) const override;
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/EntitySnapshot.cpp
similarity index 74%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/EntitySnapshot.cpp
rename to source/RobotAPI/libraries/armem/core/longtermmemory/EntitySnapshot.cpp
index 0338e6577..0cf13f021 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/EntitySnapshot.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/EntitySnapshot.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
 
@@ -24,8 +24,8 @@ namespace armarx::armem::longtermmemory
     }
 
     EntitySnapshot::EntitySnapshot(const EntitySnapshot& other) :
-        armarx::armem::detail::MemoryItem(other),
-        armarx::armem::detail::MemoryContainerBase<std::vector<EntityInstance>, EntitySnapshot>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::vector<EntityInstance>, EntitySnapshot>(other)
     {
     }
 
@@ -35,9 +35,9 @@ namespace armarx::armem::longtermmemory
         return *this;
     }
 
-    workingmemory::EntitySnapshot EntitySnapshot::convert() const
+    wm::EntitySnapshot EntitySnapshot::convert() const
     {
-        workingmemory::EntitySnapshot m;
+        wm::EntitySnapshot m;
         for (const auto& s : container)
         {
             m.addInstance(s.convert());
@@ -45,7 +45,7 @@ namespace armarx::armem::longtermmemory
         return m;
     }
 
-    void EntitySnapshot::setTo(const workingmemory::EntitySnapshot& m)
+    void EntitySnapshot::setTo(const wm::EntitySnapshot& m)
     {
         // We remove the contente here and reset it with new values
         container.clear();
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/EntitySnapshot.h b/source/RobotAPI/libraries/armem/core/longtermmemory/EntitySnapshot.h
similarity index 57%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/EntitySnapshot.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/EntitySnapshot.h
index 16dc077f3..b8c3f491d 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/EntitySnapshot.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/EntitySnapshot.h
@@ -1,26 +1,24 @@
 #pragma once
 
-#include "../base/EntitySnapshot.h"
+#include "../base/EntitySnapshotBase.h"
 
 #include "EntityInstance.h"
 
-#include "../workingMemory/EntitySnapshot.h"
+#include "../workingmemory/EntitySnapshot.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     /**
      * @brief Data of an entity at one point in time.
      */
     class EntitySnapshot :
-        virtual public EntitySnapshotBase<EntityInstance, EntitySnapshot>
+        virtual public base::EntitySnapshotBase<EntityInstance, EntitySnapshot>
     {
+        using Base = base::EntitySnapshotBase<EntityInstance, EntitySnapshot>;
 
     public:
-        using Base = EntitySnapshotBase<EntityInstance, EntitySnapshot>;
-        using EntityInstanceT = EntityInstance;
-
         EntitySnapshot();
         EntitySnapshot(Time time, const MemoryID& parentID = {});
         EntitySnapshot(const MemoryID& id);
@@ -32,9 +30,9 @@ namespace armarx::armem::longtermmemory
         EntitySnapshot& operator=(const EntitySnapshot& other);
 
         // Conversion
-        workingmemory::EntitySnapshot convert() const;
+        wm::EntitySnapshot convert() const;
 
         // MongoDB connection
-        void setTo(const workingmemory::EntitySnapshot&);
+        void setTo(const wm::EntitySnapshot&);
     };
 }
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/Memory.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
similarity index 76%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/Memory.cpp
rename to source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
index 2aa247f12..9b5779c59 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
@@ -6,7 +6,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     Memory::Memory()
@@ -14,7 +14,7 @@ namespace armarx::armem::longtermmemory
     }
 
     Memory::Memory(const std::string& name) :
-        armarx::armem::detail::MemoryItem(MemoryID().withMemoryName(name))
+        base::detail::MemoryItem(MemoryID().withMemoryName(name))
     {
     }
 
@@ -24,8 +24,8 @@ namespace armarx::armem::longtermmemory
     }
 
     Memory::Memory(const Memory& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, CoreSegment>, Memory>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, CoreSegment>, Memory>(other)
     {
         *this = other;
     }
@@ -36,9 +36,9 @@ namespace armarx::armem::longtermmemory
         return *this;
     }
 
-    workingmemory::Memory Memory::convert() const
+    wm::Memory Memory::convert() const
     {
-        workingmemory::Memory m;
+        wm::Memory m;
         for (const auto& [_, s] : container)
         {
             m.addCoreSegment(s.convert());
@@ -52,7 +52,7 @@ namespace armarx::armem::longtermmemory
         std::cout << "Setting connection to: " << settings.uniqueString() << std::endl;
     }
 
-    void Memory::append(const workingmemory::Memory& m)
+    void Memory::append(const wm::Memory& m)
     {
         for (const auto& [k, s] : m.container)
         {
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/Memory.h b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h
similarity index 63%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/Memory.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h
index ab7c8b90f..1085de776 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/Memory.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h
@@ -1,24 +1,23 @@
 #pragma once
 
-#include "../base/Memory.h"
+#include "../base/MemoryBase.h"
 
 #include "CoreSegment.h"
 
-#include "../workingMemory/Memory.h"
+#include "../workingmemory/Memory.h"
 #include "mongodb/MongoDBConnectionManager.h"
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
     /**
      * @brief Data of a memory consisting of multiple core segments.
      */
     class Memory :
-        virtual public MemoryBase<CoreSegment, Memory>
+        virtual public base::MemoryBase<CoreSegment, Memory>
     {
-    public:
-        using Base = MemoryBase<CoreSegment, Memory>;
-        using CoreSegmentT = CoreSegment;
+        using Base = base::MemoryBase<CoreSegment, Memory>;
 
+    public:
         Memory();
         Memory(const std::string& name);
         Memory(const MemoryID& id);
@@ -28,11 +27,11 @@ namespace armarx::armem::longtermmemory
 
 
         // Conversion
-        workingmemory::Memory convert() const;
+        wm::Memory convert() const;
 
         // MongoDB connection
         void reload(const MongoDBConnectionManager::MongoDBSettings&);
-        void append(const workingmemory::Memory&);
+        void append(const wm::Memory&);
 
 
     public:
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
similarity index 55%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/ProviderSegment.cpp
rename to source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
index cd00c797c..e527b2af5 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     ProviderSegment::ProviderSegment()
@@ -13,27 +13,27 @@ namespace armarx::armem::longtermmemory
     }
 
     ProviderSegment::ProviderSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withProviderSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(MemoryID().withProviderSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withProviderSegmentName(name)),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(MemoryID().withProviderSegmentName(name), aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const std::string& name, const MemoryID parentID, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(parentID.withProviderSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(parentID.withProviderSegmentName(name), aronType)
+        base::detail::MemoryItem(parentID.withProviderSegmentName(name)),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(parentID.withProviderSegmentName(name), aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const MemoryID id, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(id),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(id, aronType)
+        base::detail::MemoryItem(id),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(id, aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const ProviderSegment& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, Entity>, ProviderSegment>(other),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, Entity>, ProviderSegment>(other),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(other)
     {
     }
 
@@ -43,9 +43,9 @@ namespace armarx::armem::longtermmemory
         return *this;
     }
 
-    workingmemory::ProviderSegment ProviderSegment::convert() const
+    wm::ProviderSegment ProviderSegment::convert() const
     {
-        workingmemory::ProviderSegment m;
+        wm::ProviderSegment m;
         for (const auto& [_, s] : container)
         {
             m.addEntity(s.convert());
@@ -53,7 +53,7 @@ namespace armarx::armem::longtermmemory
         return m;
     }
 
-    void ProviderSegment::append(const workingmemory::ProviderSegment& m)
+    void ProviderSegment::append(const wm::ProviderSegment& m)
     {
         for (const auto& [k, s] : m.container)
         {
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h
similarity index 64%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/ProviderSegment.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h
index 0ccff9600..5ac77dad6 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h
@@ -1,25 +1,24 @@
 #pragma once
 
-#include "../base/ProviderSegment.h"
+#include "../base/ProviderSegmentBase.h"
 
 #include "Entity.h"
 
-#include "../workingMemory/ProviderSegment.h"
+#include "../workingmemory/ProviderSegment.h"
 
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     /**
      * @brief Data of a provider segment containing multiple entities.
      */
     class ProviderSegment :
-        virtual public ProviderSegmentBase<Entity, ProviderSegment>
+        virtual public base::ProviderSegmentBase<Entity, ProviderSegment>
     {
-    public:
-        using Base = ProviderSegmentBase<Entity, ProviderSegment>;
-        using EntityT = Entity;
+        using Base = base::ProviderSegmentBase<Entity, ProviderSegment>;
 
+    public:
         ProviderSegment();
         ProviderSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         ProviderSegment(const std::string& name, const MemoryID parentID, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
@@ -29,10 +28,10 @@ namespace armarx::armem::longtermmemory
         ProviderSegment& operator=(const ProviderSegment& other);
 
         // Conversion
-        workingmemory::ProviderSegment convert() const;
+        wm::ProviderSegment convert() const;
 
         // MongoDB connection
-        void append(const workingmemory::ProviderSegment&);
+        void append(const wm::ProviderSegment&);
     };
 
 }
diff --git a/source/RobotAPI/libraries/armem/core/longtermMemory/mongodb/MongoDBConnectionManager.h b/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h
similarity index 94%
rename from source/RobotAPI/libraries/armem/core/longtermMemory/mongodb/MongoDBConnectionManager.h
rename to source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h
index 799b59d86..02c25965f 100644
--- a/source/RobotAPI/libraries/armem/core/longtermMemory/mongodb/MongoDBConnectionManager.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h
@@ -5,7 +5,7 @@
 #include <map>
 #include <memory>
 
-namespace armarx::armem::longtermmemory
+namespace armarx::armem::ltm
 {
 
     /**
@@ -36,7 +36,7 @@ namespace armarx::armem::longtermmemory
         {
             const auto str_rep = settings.uniqueString();
             const auto& it = Connections.find(str_rep);
-            if(it == Connections.end())
+            if (it == Connections.end())
             {
                 auto con = Connections.emplace(str_rep, 0);
                 return con.first->second;
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.cpp b/source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.cpp
deleted file mode 100644
index 9fd73048f..000000000
--- a/source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "MemoryContainer.h"
-
-
-namespace armarx::armem::detail
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h b/source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h
deleted file mode 100644
index a48fe734b..000000000
--- a/source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include <RobotAPI/interface/armem/commit.h>
-#include <RobotAPI/interface/armem/memory.h>
-
-#include "Memory.h"
-
-
-namespace armarx::armem
-{
-    void toIce(data::EntityInstanceMetadata& ice, const workingmemory::EntityInstanceMetadata& metadata);
-    void fromIce(const data::EntityInstanceMetadata& ice, workingmemory::EntityInstanceMetadata& metadata);
-
-    void toIce(data::EntityInstance& ice, const workingmemory::EntityInstance& data);
-    void fromIce(const data::EntityInstance& ice, workingmemory::EntityInstance& data);
-
-
-    void toIce(data::EntitySnapshot& ice, const workingmemory::EntitySnapshot& snapshot);
-    void fromIce(const data::EntitySnapshot& ice, workingmemory::EntitySnapshot& snapshot);
-
-    void toIce(data::Entity& ice, const workingmemory::Entity& entity);
-    void fromIce(const data::Entity& ice, workingmemory::Entity& entity);
-
-
-    void toIce(data::ProviderSegment& ice, const workingmemory::ProviderSegment& providerSegment);
-    void fromIce(const data::ProviderSegment& ice, workingmemory::ProviderSegment& providerSegment);
-
-    void toIce(data::CoreSegment& ice, const workingmemory::CoreSegment& coreSegment);
-    void fromIce(const data::CoreSegment& ice, workingmemory::CoreSegment& coreSegment);
-
-    void toIce(data::Memory& ice, const workingmemory::Memory& memory);
-    void fromIce(const data::Memory& ice, workingmemory::Memory& memory);
-}
-
-// Must be included after the prototypes. Otherwise the compiler cannot find the correct methods in ice_coversion_templates.h
-#include "../ice_conversions.h"
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp
similarity index 57%
rename from source/RobotAPI/libraries/armem/core/workingMemory/CoreSegment.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp
index 447dad9c5..3c9fe0364 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     CoreSegment::CoreSegment()
@@ -13,27 +13,27 @@ namespace armarx::armem::workingmemory
     }
 
     CoreSegment::CoreSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(MemoryID().withCoreSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(MemoryID().withCoreSegmentName(name), aronType)
     {
     }
 
     CoreSegment::CoreSegment(const std::string& name, const MemoryID& parentID, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(parentID.withCoreSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withCoreSegmentName(name)),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(parentID.withCoreSegmentName(name), aronType)
     {
     }
 
     CoreSegment::CoreSegment(const MemoryID& id, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(id),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(id, aronType)
+        base::detail::MemoryItem(id),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(id, aronType)
     {
     }
 
     CoreSegment::CoreSegment(const CoreSegment& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, ProviderSegment>, CoreSegment>(other),
-        armarx::armem::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, ProviderSegment>, CoreSegment>(other),
+        base::detail::TypedEntityContainerBase<ProviderSegment, Entity, CoreSegment>(other)
     {
     }
 
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h
similarity index 78%
rename from source/RobotAPI/libraries/armem/core/workingMemory/CoreSegment.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h
index 3dcd65d9e..d727b408b 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h
@@ -1,25 +1,24 @@
 #pragma once
 
-#include "../base/CoreSegment.h"
+#include "../base/CoreSegmentBase.h"
 
 #include "ProviderSegment.h"
 #include "detail/TypedEntityContainer.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     /**
      * @brief Data of a core segment containing multiple provider segments.
      */
     class CoreSegment :
-        virtual public CoreSegmentBase<ProviderSegment, CoreSegment>,
+        virtual public base::CoreSegmentBase<ProviderSegment, CoreSegment>,
         virtual public detail::TypedEntityContainer<ProviderSegment, CoreSegment>
     {
-    public:
-        using Base = CoreSegmentBase<ProviderSegment, CoreSegment>;
-        using ProviderSegmentT = ProviderSegment;
+        using Base = base::CoreSegmentBase<ProviderSegment, CoreSegment>;
 
+    public:
         CoreSegment();
         CoreSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         CoreSegment(const std::string& name, const MemoryID& parentID, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/Entity.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/Entity.cpp
similarity index 71%
rename from source/RobotAPI/libraries/armem/core/workingMemory/Entity.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/Entity.cpp
index 4880da0ea..75fddfd55 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/Entity.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/Entity.cpp
@@ -1,6 +1,6 @@
 #include "Entity.h"
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     Entity::Entity()
@@ -8,18 +8,18 @@ namespace armarx::armem::workingmemory
     }
 
     Entity::Entity(const std::string& name, const MemoryID& parentID) :
-        armarx::armem::detail::MemoryItem(parentID.withEntityName(name))
+        base::detail::MemoryItem(parentID.withEntityName(name))
     {
     }
 
     Entity::Entity(const MemoryID& id) :
-        armarx::armem::detail::MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
     Entity::Entity(const Entity& other) :
-        armarx::armem::detail::MemoryItem(other),
-        armarx::armem::detail::MemoryContainerBase<std::map<Time, EntitySnapshot>, Entity>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<Time, EntitySnapshot>, Entity>(other)
     {
     }
 
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/Entity.h b/source/RobotAPI/libraries/armem/core/workingmemory/Entity.h
similarity index 85%
rename from source/RobotAPI/libraries/armem/core/workingMemory/Entity.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/Entity.h
index e1054a7e8..9d213e92f 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/Entity.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/Entity.h
@@ -1,12 +1,12 @@
 #pragma once
 
-#include "../base/Entity.h"
+#include "../base/EntityBase.h"
 
 #include "EntitySnapshot.h"
 #include "detail/MemoryContainer.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
     /**
      * @brief An entity over a period of time.
@@ -28,14 +28,12 @@ namespace armarx::armem::workingmemory
      * each containing a single `AronData` object of a specific `AronType`.
      */
     class Entity :
-        virtual public EntityBase<EntitySnapshot, Entity>,
+        virtual public base::EntityBase<EntitySnapshot, Entity>,
         virtual public detail::MemoryContainer<std::map<Time, EntitySnapshot>, Entity>
     {
+        using Base = base::EntityBase<EntitySnapshot, Entity>;
 
     public:
-        using Base = EntityBase<EntitySnapshot, Entity>;
-        using EntitySnapshotT = EntitySnapshot;
-
         Entity();
         Entity(const std::string& name, const MemoryID& parentID = {});
         Entity(const MemoryID& id);
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/EntityInstance.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/EntityInstance.cpp
similarity index 95%
rename from source/RobotAPI/libraries/armem/core/workingMemory/EntityInstance.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/EntityInstance.cpp
index cffa83499..ce62d0164 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/EntityInstance.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/EntityInstance.cpp
@@ -3,7 +3,7 @@
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     bool EntityInstanceMetadata::operator==(const EntityInstanceMetadata& other) const
@@ -19,7 +19,7 @@ namespace armarx::armem::workingmemory
     }
 
     EntityInstance::EntityInstance(const EntityInstance& other) :
-        MemoryItem(other.id),
+        base::detail::MemoryItem(other.id),
         _metadata(other._metadata),
         _data(other._data)
     {
@@ -31,7 +31,7 @@ namespace armarx::armem::workingmemory
     }
 
     EntityInstance::EntityInstance(const MemoryID& id) :
-        MemoryItem(id)
+        base::detail::MemoryItem(id)
     {
     }
 
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/EntityInstance.h b/source/RobotAPI/libraries/armem/core/workingmemory/EntityInstance.h
similarity index 92%
rename from source/RobotAPI/libraries/armem/core/workingMemory/EntityInstance.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/EntityInstance.h
index 589290441..cbfe38200 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/EntityInstance.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/EntityInstance.h
@@ -1,8 +1,8 @@
 #pragma once
 
-#include "../base/EntityInstance.h"
+#include "../base/EntityInstanceBase.h"
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     /**
@@ -32,12 +32,11 @@ namespace armarx::armem::workingmemory
      * @brief Data of a single entity instance.
      */
     class EntityInstance :
-        virtual public EntityInstanceBase<EntityInstance>
+        virtual public base::EntityInstanceBase<EntityInstance>
     {
+        using Base = base::EntityInstanceBase<EntityInstance>;
 
     public:
-        using Base = EntityInstanceBase<EntityInstance>;
-
         EntityInstance();
         EntityInstance(const EntityInstance&);
         EntityInstance(int index, const MemoryID& parentID = {});
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/EntitySnapshot.cpp
similarity index 84%
rename from source/RobotAPI/libraries/armem/core/workingMemory/EntitySnapshot.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/EntitySnapshot.cpp
index be3f08204..124645de9 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/EntitySnapshot.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/EntitySnapshot.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
 
@@ -24,8 +24,8 @@ namespace armarx::armem::workingmemory
     }
 
     EntitySnapshot::EntitySnapshot(const EntitySnapshot& other) :
-        armarx::armem::detail::MemoryItem(other),
-        armarx::armem::detail::MemoryContainerBase<std::vector<EntityInstance>, EntitySnapshot>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::vector<EntityInstance>, EntitySnapshot>(other)
     {
     }
 
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/EntitySnapshot.h b/source/RobotAPI/libraries/armem/core/workingmemory/EntitySnapshot.h
similarity index 74%
rename from source/RobotAPI/libraries/armem/core/workingMemory/EntitySnapshot.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/EntitySnapshot.h
index 7f88288ea..5f18288ba 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/EntitySnapshot.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/EntitySnapshot.h
@@ -1,26 +1,24 @@
 #pragma once
 
-#include "../base/EntitySnapshot.h"
+#include "../base/EntitySnapshotBase.h"
 
 #include "EntityInstance.h"
 #include "detail/MemoryContainer.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     /**
      * @brief Data of an entity at one point in time.
      */
     class EntitySnapshot :
-        virtual public EntitySnapshotBase<EntityInstance, EntitySnapshot>,
+        virtual public base::EntitySnapshotBase<EntityInstance, EntitySnapshot>,
         virtual public detail::MemoryContainer<std::vector<EntityInstance>, EntitySnapshot>
     {
+        using Base = base::EntitySnapshotBase<EntityInstance, EntitySnapshot>;
 
     public:
-        using Base = EntitySnapshotBase<EntityInstance, EntitySnapshot>;
-        using EntityInstanceT = EntityInstance;
-
         EntitySnapshot();
         EntitySnapshot(Time time, const MemoryID& parentID = {});
         EntitySnapshot(const MemoryID& id);
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/Memory.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/Memory.cpp
similarity index 85%
rename from source/RobotAPI/libraries/armem/core/workingMemory/Memory.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/Memory.cpp
index 31e380522..706d26bcc 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/Memory.cpp
@@ -6,7 +6,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     Memory::Memory()
@@ -14,7 +14,7 @@ namespace armarx::armem::workingmemory
     }
 
     Memory::Memory(const std::string& name) :
-        armarx::armem::detail::MemoryItem(MemoryID().withMemoryName(name))
+        base::detail::MemoryItem(MemoryID().withMemoryName(name))
     {
     }
 
@@ -24,7 +24,7 @@ namespace armarx::armem::workingmemory
     }
 
     Memory::Memory(const Memory& other) :
-        armarx::armem::detail::MemoryItem(other),
+        base::detail::MemoryItem(other),
         MemoryContainerBase<std::map<std::string, CoreSegment>, Memory>(other)
     {
         *this = other;
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/Memory.h b/source/RobotAPI/libraries/armem/core/workingmemory/Memory.h
similarity index 73%
rename from source/RobotAPI/libraries/armem/core/workingMemory/Memory.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/Memory.h
index 7ec0f660f..d747ded5e 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/Memory.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/Memory.h
@@ -1,24 +1,23 @@
 #pragma once
 
-#include "../base/Memory.h"
+#include "../base/MemoryBase.h"
 
 #include "CoreSegment.h"
 #include "detail/EntityContainer.h"
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     /**
      * @brief Data of a memory consisting of multiple core segments.
      */
     class Memory :
-        virtual public MemoryBase<CoreSegment, Memory>,
+        virtual public base::MemoryBase<CoreSegment, Memory>,
         virtual public detail::EntityContainer<CoreSegment, Memory>
     {
-    public:
-        using Base = MemoryBase<CoreSegment, Memory>;
-        using CoreSegmentT = CoreSegment;
+        using Base = base::MemoryBase<CoreSegment, Memory>;
 
+    public:
         Memory();
         Memory(const std::string& name);
         Memory(const MemoryID& id);
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp
similarity index 58%
rename from source/RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp
index 652edf3ce..dbf436b65 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp
@@ -5,7 +5,7 @@
 #include "error.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     ProviderSegment::ProviderSegment()
@@ -13,27 +13,27 @@ namespace armarx::armem::workingmemory
     }
 
     ProviderSegment::ProviderSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(MemoryID().withProviderSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(MemoryID().withProviderSegmentName(name), aronType)
+        base::detail::MemoryItem(MemoryID().withProviderSegmentName(name)),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(MemoryID().withProviderSegmentName(name), aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const std::string& name, const MemoryID parentID, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(parentID.withProviderSegmentName(name)),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(parentID.withProviderSegmentName(name), aronType)
+        base::detail::MemoryItem(parentID.withProviderSegmentName(name)),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(parentID.withProviderSegmentName(name), aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const MemoryID id, aron::typenavigator::ObjectNavigatorPtr aronType) :
-        armarx::armem::detail::MemoryItem(id),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(id, aronType)
+        base::detail::MemoryItem(id),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(id, aronType)
     {
     }
 
     ProviderSegment::ProviderSegment(const ProviderSegment& other) :
-        armarx::armem::detail::MemoryItem(other),
-        MemoryContainerBase<std::map<std::string, Entity>, ProviderSegment>(other),
-        armarx::armem::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(other)
+        base::detail::MemoryItem(other),
+        base::detail::MemoryContainerBase<std::map<std::string, Entity>, ProviderSegment>(other),
+        base::detail::TypedEntityContainerBase<Entity, Entity, ProviderSegment>(other)
     {
     }
 
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h
similarity index 79%
rename from source/RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h
index 4596041a2..542ec3dc5 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h
@@ -1,25 +1,24 @@
 #pragma once
 
-#include "../base/ProviderSegment.h"
+#include "../base/ProviderSegmentBase.h"
 
 #include "Entity.h"
 #include "detail/TypedEntityContainer.h"
 
 
-namespace armarx::armem::workingmemory
+namespace armarx::armem::wm
 {
 
     /**
      * @brief Data of a provider segment containing multiple entities.
      */
     class ProviderSegment :
-        virtual public ProviderSegmentBase<Entity, ProviderSegment>,
+        virtual public base::ProviderSegmentBase<Entity, ProviderSegment>,
         virtual public detail::TypedEntityContainer<Entity, ProviderSegment>
     {
-    public:
-        using Base = ProviderSegmentBase<Entity, ProviderSegment>;
-        using EntityT = Entity;
+        using Base = base::ProviderSegmentBase<Entity, ProviderSegment>;
 
+    public:
         ProviderSegment();
         ProviderSegment(const std::string& name, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         ProviderSegment(const std::string& name, const MemoryID parentID, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/detail/EntityContainer.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/detail/EntityContainer.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/detail/EntityContainer.h b/source/RobotAPI/libraries/armem/core/workingmemory/detail/EntityContainer.h
similarity index 68%
rename from source/RobotAPI/libraries/armem/core/workingMemory/detail/EntityContainer.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/detail/EntityContainer.h
index 05c491b21..431d13624 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/detail/EntityContainer.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/detail/EntityContainer.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "../../base/detail/EntityContainer.h"
+#include "../../base/detail/EntityContainerBase.h"
 #include "MemoryContainer.h"
 
 #include "../Entity.h"
@@ -8,7 +8,7 @@
 #include "../EntityInstance.h"
 
 
-namespace armarx::armem::workingmemory::detail
+namespace armarx::armem::wm::detail
 {
 
     /**
@@ -16,10 +16,10 @@ namespace armarx::armem::workingmemory::detail
      *
      * Can be updated by multiple entity updates.
      */
-    template <class _ValueT, class Derived>
+    template <class _ValueT, class _Derived>
     class EntityContainer :
-        virtual public armarx::armem::detail::EntityContainerBase<_ValueT, Entity, Derived>,
-        virtual public MemoryContainer<std::map<std::string, _ValueT>, Derived>
+        virtual public base::detail::EntityContainerBase<_ValueT, Entity, _Derived>,
+        virtual public MemoryContainer<std::map<std::string, _ValueT>, _Derived>
     {
     public:
         EntityContainer& operator=(const EntityContainer& other)
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/detail/MemoryContainer.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/detail/MemoryContainer.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.h b/source/RobotAPI/libraries/armem/core/workingmemory/detail/MemoryContainer.h
similarity index 55%
rename from source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/detail/MemoryContainer.h
index c3633b651..a915c8714 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/detail/MemoryContainer.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/detail/MemoryContainer.h
@@ -4,20 +4,22 @@
 
 #include "../../error.h"
 
-#include "../../base/detail/MemoryContainer.h"
+#include "../../base/detail/MemoryContainerBase.h"
 
 
-namespace armarx::armem::workingmemory::detail
+namespace armarx::armem::wm::detail
 {
 
     /**
      * @class Provides default implmentations of `MemoryContainer`, as well as
      * iterators (which requires a template).
      */
-    template <class _ContainerT, class Derived>
+    template <class _ContainerT, class _Derived>
     class MemoryContainer :
-        virtual public armarx::armem::detail::MemoryContainerBase<_ContainerT, Derived>
+        virtual public base::detail::MemoryContainerBase<_ContainerT, _Derived>
     {
+        using Base = base::detail::MemoryContainerBase<_ContainerT, _Derived>;
+
     public:
         MemoryContainer& operator=(const MemoryContainer& other)
         {
@@ -26,17 +28,17 @@ namespace armarx::armem::workingmemory::detail
         }
 
         // Copying
-        virtual Derived copyWithoutData() const
+        virtual _Derived copyWithoutData() const
         {
-            Derived t;
+            _Derived t;
             _copySelfWithoutData(t);
             return t;
         }
 
     protected:
-        virtual void _copySelfWithoutData(Derived& o) const
+        virtual void _copySelfWithoutData(_Derived& o) const
         {
-            armarx::armem::detail::MemoryContainerBase<_ContainerT, Derived>::_copySelfEmpty(o);
+            Base::_copySelfEmpty(o);
         }
     };
 }
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/detail/TypedEntityContainer.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/detail/TypedEntityContainer.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/detail/TypedEntityContainer.h b/source/RobotAPI/libraries/armem/core/workingmemory/detail/TypedEntityContainer.h
similarity index 58%
rename from source/RobotAPI/libraries/armem/core/workingMemory/detail/TypedEntityContainer.h
rename to source/RobotAPI/libraries/armem/core/workingmemory/detail/TypedEntityContainer.h
index ebcb1f62d..f90925ff1 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/detail/TypedEntityContainer.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/detail/TypedEntityContainer.h
@@ -1,20 +1,20 @@
 #pragma once
 
-#include "../../base/detail/TypedEntityContainer.h"
+#include "../../base/detail/TypedEntityContainerBase.h"
 #include "EntityContainer.h"
 
 #include <RobotAPI/libraries/aron/core/navigator/type/container/Object.h>
 
-namespace armarx::armem::workingmemory::detail
+namespace armarx::armem::wm::detail
 {
 
     /**
      * @brief An entity container with a specific (Aron) type.
      */
-    template <class _ValueT, class Derived>
+    template <class _ValueT, class _Derived>
     class TypedEntityContainer :
-        virtual public armarx::armem::detail::TypedEntityContainerBase<_ValueT, Entity, Derived>,
-        virtual public EntityContainer<_ValueT, Derived>
+        virtual public base::detail::TypedEntityContainerBase<_ValueT, Entity, _Derived>,
+        virtual public EntityContainer<_ValueT, _Derived>
     {
     public:
         TypedEntityContainer& operator=(const TypedEntityContainer& other)
diff --git a/source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.cpp
similarity index 69%
rename from source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.cpp
rename to source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.cpp
index f218de383..ad77c6dc1 100644
--- a/source/RobotAPI/libraries/armem/core/workingMemory/ice_conversions.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.cpp
@@ -2,14 +2,14 @@
 
 namespace armarx::armem
 {
-    void toIce(data::EntityInstanceMetadata& ice, const workingmemory::EntityInstanceMetadata& metadata)
+    void toIce(armarx::armem::data::EntityInstanceMetadata& ice, const armarx::armem::wm::EntityInstanceMetadata& metadata)
     {
         ice.confidence = metadata.confidence;
         toIce(ice.timeArrivedMicroSeconds, metadata.timeArrived);
         toIce(ice.timeCreatedMicroSeconds, metadata.timeCreated);
         toIce(ice.timeSentMicroSeconds, metadata.timeSent);
     }
-    void fromIce(const data::EntityInstanceMetadata& ice, workingmemory::EntityInstanceMetadata& metadata)
+    void fromIce(const armarx::armem::data::EntityInstanceMetadata& ice, armarx::armem::wm::EntityInstanceMetadata& metadata)
     {
         metadata.confidence = ice.confidence;
         fromIce(ice.timeArrivedMicroSeconds, metadata.timeArrived);
@@ -17,7 +17,7 @@ namespace armarx::armem
         fromIce(ice.timeSentMicroSeconds, metadata.timeSent);
     }
 
-    void toIce(data::EntityInstance& ice, const workingmemory::EntityInstance& data)
+    void toIce(data::EntityInstance& ice, const wm::EntityInstance& data)
     {
         detail::toIceItem(ice, data);
 
@@ -27,7 +27,7 @@ namespace armarx::armem
         }
         toIce(ice.metadata, data.metadata());
     }
-    void fromIce(const data::EntityInstance& ice, workingmemory::EntityInstance& data)
+    void fromIce(const data::EntityInstance& ice, wm::EntityInstance& data)
     {
         detail::fromIceItem(ice, data);
 
@@ -39,26 +39,26 @@ namespace armarx::armem
     }
 
 
-    void toIce(data::EntitySnapshot& ice, const workingmemory::EntitySnapshot& snapshot)
+    void toIce(data::EntitySnapshot& ice, const wm::EntitySnapshot& snapshot)
     {
         detail::toIceItem(ice, snapshot);
 
         toIce(ice.instances, snapshot.container);
     }
-    void fromIce(const data::EntitySnapshot& ice, workingmemory::EntitySnapshot& snapshot)
+    void fromIce(const data::EntitySnapshot& ice, wm::EntitySnapshot& snapshot)
     {
         detail::fromIceItem(ice, snapshot);
 
         fromIce(ice.instances, snapshot.container);
     }
 
-    void toIce(data::Entity& ice, const workingmemory::Entity& entity)
+    void toIce(data::Entity& ice, const wm::Entity& entity)
     {
         detail::toIceItem(ice, entity);
 
         toIce(ice.history, entity.container);
     }
-    void fromIce(const data::Entity& ice, workingmemory::Entity& entity)
+    void fromIce(const data::Entity& ice, wm::Entity& entity)
     {
         detail::fromIceItem(ice, entity);
 
@@ -66,7 +66,7 @@ namespace armarx::armem
     }
 
 
-    void toIce(data::ProviderSegment& ice, const workingmemory::ProviderSegment& providerSegment)
+    void toIce(data::ProviderSegment& ice, const wm::ProviderSegment& providerSegment)
     {
         detail::toIceItem(ice, providerSegment);
 
@@ -76,7 +76,7 @@ namespace armarx::armem
         }
         toIce(ice.entities, providerSegment.container);
     }
-    void fromIce(const data::ProviderSegment& ice, workingmemory::ProviderSegment& providerSegment)
+    void fromIce(const data::ProviderSegment& ice, wm::ProviderSegment& providerSegment)
     {
         detail::fromIceItem(ice, providerSegment);
 
@@ -87,7 +87,7 @@ namespace armarx::armem
         fromIce(ice.entities, providerSegment.container);
     }
 
-    void toIce(data::CoreSegment& ice, const workingmemory::CoreSegment& coreSegment)
+    void toIce(data::CoreSegment& ice, const wm::CoreSegment& coreSegment)
     {
         detail::toIceItem(ice, coreSegment);
 
@@ -97,7 +97,7 @@ namespace armarx::armem
         }
         toIce(ice.providerSegments, coreSegment.container);
     }
-    void fromIce(const data::CoreSegment& ice, workingmemory::CoreSegment& coreSegment)
+    void fromIce(const data::CoreSegment& ice, wm::CoreSegment& coreSegment)
     {
         detail::fromIceItem(ice, coreSegment);
 
@@ -108,13 +108,13 @@ namespace armarx::armem
         fromIce(ice.providerSegments, coreSegment.container);
     }
 
-    void toIce(data::Memory& ice, const workingmemory::Memory& memory)
+    void toIce(data::Memory& ice, const wm::Memory& memory)
     {
         detail::toIceItem(ice, memory);
 
         toIce(ice.coreSegments, memory.container);
     }
-    void fromIce(const data::Memory& ice, workingmemory::Memory& memory)
+    void fromIce(const data::Memory& ice, wm::Memory& memory)
     {
         detail::fromIceItem(ice, memory);
 
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h b/source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h
new file mode 100644
index 000000000..4d14e6b0d
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <RobotAPI/interface/armem/commit.h>
+#include <RobotAPI/interface/armem/memory.h>
+
+#include "Memory.h"
+
+
+namespace armarx::armem
+{
+    void toIce(data::EntityInstanceMetadata& ice, const wm::EntityInstanceMetadata& metadata);
+    void fromIce(const data::EntityInstanceMetadata& ice, wm::EntityInstanceMetadata& metadata);
+
+    void toIce(data::EntityInstance& ice, const wm::EntityInstance& data);
+    void fromIce(const data::EntityInstance& ice, wm::EntityInstance& data);
+
+
+    void toIce(data::EntitySnapshot& ice, const wm::EntitySnapshot& snapshot);
+    void fromIce(const data::EntitySnapshot& ice, wm::EntitySnapshot& snapshot);
+
+    void toIce(data::Entity& ice, const wm::Entity& entity);
+    void fromIce(const data::Entity& ice, wm::Entity& entity);
+
+
+    void toIce(data::ProviderSegment& ice, const wm::ProviderSegment& providerSegment);
+    void fromIce(const data::ProviderSegment& ice, wm::ProviderSegment& providerSegment);
+
+    void toIce(data::CoreSegment& ice, const wm::CoreSegment& coreSegment);
+    void fromIce(const data::CoreSegment& ice, wm::CoreSegment& coreSegment);
+
+    void toIce(data::Memory& ice, const wm::Memory& memory);
+    void fromIce(const data::Memory& ice, wm::Memory& memory);
+}
+
+// Must be included after the prototypes. Otherwise the compiler cannot find the correct methods in ice_coversion_templates.h
+#include "../ice_conversions.h"
diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
index 2c12bbb49..c5aff2156 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
@@ -36,7 +36,7 @@ namespace armarx::armem::server::plugins
         parent.iceMemory.setMemoryListener(memoryListener);
 
         // establishing connection to ltm and mongodb
-        longtermmemory::MongoDBConnectionManager::MongoDBSettings settings;
+        ltm::MongoDBConnectionManager::MongoDBSettings settings;
         settings.host = longTermMemoryDatabaseHost;
         settings.user = longTermMemoryDatabaseUser;
         settings.password = longTermMemoryDatabasePassword;
diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.h b/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
index 0aa7c6b3b..c051995c4 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
@@ -8,8 +8,8 @@
 #include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
 #include <RobotAPI/interface/armem/mns/MemoryNameSystemInterface.h>
 
-#include "../core/workingMemory/Memory.h"
-#include "../core/longtermMemory/Memory.h"
+#include "../core/workingmemory/Memory.h"
+#include "../core/longtermmemory/Memory.h"
 
 #include "../mns/ClientPlugin.h"
 #include "MemoryToIceAdapter.h"
@@ -96,10 +96,10 @@ namespace armarx::armem::server
 
     public:
         /// The actual memory.
-        workingmemory::Memory workingmemory;
+        wm::Memory workingmemory;
         std::mutex workingmemoryMutex;
 
-        longtermmemory::Memory longtermmemory;
+        ltm::Memory longtermmemory;
         std::mutex longtermmemoryMutex;
 
         /// property defaults
diff --git a/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.cpp b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.cpp
index 870bba1c5..9ab34efd9 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.cpp
+++ b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.cpp
@@ -13,7 +13,7 @@
 namespace armarx::armem::server
 {
 
-    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const workingmemory::Memory& memory) const
+    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const wm::Memory& memory) const
     {
         GroupBox group;
         group.setLabel(makeGroupLabel("Memory", memory.name(), memory.coreSegments().size()));
@@ -32,7 +32,7 @@ namespace armarx::armem::server
 
 
 
-    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const workingmemory::CoreSegment& coreSegment) const
+    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const wm::CoreSegment& coreSegment) const
     {
         GroupBox group;
         group.setLabel(makeGroupLabel("Core Segment", coreSegment.name(), coreSegment.providerSegments().size()));
@@ -51,7 +51,7 @@ namespace armarx::armem::server
 
 
 
-    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const workingmemory::ProviderSegment& providerSegment) const
+    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const wm::ProviderSegment& providerSegment) const
     {
         GroupBox group;
         group.setLabel(makeGroupLabel("Provider Segment", providerSegment.name(), providerSegment.entities().size()));
@@ -70,7 +70,7 @@ namespace armarx::armem::server
 
 
 
-    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const workingmemory::Entity& entity) const
+    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const wm::Entity& entity) const
     {
         GroupBox group;
         group.setLabel(makeGroupLabel("Entity", entity.name(), entity.history().size()));
@@ -110,7 +110,7 @@ namespace armarx::armem::server
 
 
 
-    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const workingmemory::EntitySnapshot& snapshot) const
+    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const wm::EntitySnapshot& snapshot) const
     {
         GroupBox group;
         group.setLabel(makeGroupLabel("t", armem::toDateTimeMilliSeconds(snapshot.time()),
@@ -120,7 +120,7 @@ namespace armarx::armem::server
         {
             group.addChild(Label(makeNoItemsMessage("instances")));
         }
-        for (const workingmemory::EntityInstance& instance : snapshot.instances())
+        for (const wm::EntityInstance& instance : snapshot.instances())
         {
             group.addChild(makeGroupBox(instance));
         }
@@ -129,7 +129,7 @@ namespace armarx::armem::server
         return group;
     }
 
-    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const workingmemory::EntityInstance& instance) const
+    MemoryRemoteGui::GroupBox MemoryRemoteGui::makeGroupBox(const wm::EntityInstance& instance) const
     {
         GroupBox group;
 
diff --git a/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h
index 59ebb3128..f4a7fad95 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryRemoteGui.h
@@ -2,7 +2,7 @@
 
 #include <ArmarXGui/libraries/RemoteGui/Client/Widgets.h>
 
-#include "../core/workingMemory/Memory.h"
+#include "../core/workingmemory/Memory.h"
 
 
 namespace armarx::armem::server
@@ -17,12 +17,12 @@ namespace armarx::armem::server
         using GroupBox = armarx::RemoteGui::Client::GroupBox;
         using Label = armarx::RemoteGui::Client::Label;
 
-        GroupBox makeGroupBox(const workingmemory::Memory& memory) const;
-        GroupBox makeGroupBox(const workingmemory::CoreSegment& coreSegment) const;
-        GroupBox makeGroupBox(const workingmemory::ProviderSegment& providerSegment) const;
-        GroupBox makeGroupBox(const workingmemory::Entity& entity) const;
-        GroupBox makeGroupBox(const workingmemory::EntitySnapshot& entitySnapshot) const;
-        GroupBox makeGroupBox(const workingmemory::EntityInstance& instance) const;
+        GroupBox makeGroupBox(const wm::Memory& memory) const;
+        GroupBox makeGroupBox(const wm::CoreSegment& coreSegment) const;
+        GroupBox makeGroupBox(const wm::ProviderSegment& providerSegment) const;
+        GroupBox makeGroupBox(const wm::Entity& entity) const;
+        GroupBox makeGroupBox(const wm::EntitySnapshot& entitySnapshot) const;
+        GroupBox makeGroupBox(const wm::EntityInstance& instance) const;
 
 
         std::string makeGroupLabel(const std::string& term, const std::string& name, size_t size,
diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
index 1b944deb1..68904e536 100644
--- a/source/RobotAPI/libraries/armem/server/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 "../core/workingMemory/ice_conversions.h"
-#include "query_proc/workingMemory/MemoryQueryProcessor.h"
+#include "../core/workingmemory/ice_conversions.h"
+#include "query_proc/workingmemory/MemoryQueryProcessor.h"
 
 //#include "../core/io/diskWriter/NlohmannJSON/NlohmannJSONDiskWriter.h"
 //#include "../core/io/diskReader/NlohmannJSON/NlohmannJSONDiskReader.h"
@@ -12,7 +12,7 @@
 namespace armarx::armem::server
 {
 
-    MemoryToIceAdapter::MemoryToIceAdapter(workingmemory::Memory* workingmemory, longtermmemory::Memory* longtermmemory) : workingmemory(workingmemory), longtermmemory(longtermmemory)
+    MemoryToIceAdapter::MemoryToIceAdapter(wm::Memory* workingmemory, ltm::Memory* longtermmemory) : workingmemory(workingmemory), longtermmemory(longtermmemory)
     {
     }
 
@@ -33,7 +33,7 @@ namespace armarx::armem::server
 
         data::AddSegmentResult output;
 
-        armem::workingmemory::CoreSegment* coreSegment = nullptr;
+        armem::wm::CoreSegment* coreSegment = nullptr;
         try
         {
             coreSegment = &workingmemory->getCoreSegment(input.coreSegmentName);
@@ -64,7 +64,7 @@ namespace armarx::armem::server
                 // This is ok.
                 if (input.clearWhenExists)
                 {
-                    workingmemory::ProviderSegment& provider = coreSegment->getProviderSegment(input.providerSegmentName);
+                    wm::ProviderSegment& provider = coreSegment->getProviderSegment(input.providerSegmentName);
                     provider.clear();
                 }
             }
@@ -163,7 +163,7 @@ namespace armarx::armem::server
     {
         ARMARX_CHECK_NOT_NULL(workingmemory);
 
-        armem::workingmemory::query_proc::MemoryQueryProcessor processor(
+        armem::wm::query_proc::MemoryQueryProcessor processor(
             input.withData ? armem::DataMode::WithData
             : armem::DataMode::NoData);
         return processor.process(input, *workingmemory);
@@ -189,7 +189,7 @@ namespace armarx::armem::server
         armem::query::data::Result queryResult = this->query(input.query);
         if (queryResult.success)
         {
-            workingmemory::Memory m;
+            wm::Memory m;
             fromIce(queryResult.memory, m);
             longtermmemory->append(m);
         }
diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
index b0d1ac098..0e2250387 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
@@ -3,8 +3,8 @@
 #include <RobotAPI/interface/armem/server/MemoryInterface.h>
 #include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
 
-#include "../core/workingMemory/Memory.h"
-#include "../core/longtermMemory/Memory.h"
+#include "../core/workingmemory/Memory.h"
+#include "../core/longtermmemory/Memory.h"
 
 
 namespace armarx::armem::server
@@ -22,7 +22,7 @@ namespace armarx::armem::server
     public:
 
         /// Construct an MemoryToIceAdapter from an existing Memory.
-        MemoryToIceAdapter(workingmemory::Memory* workingmemory = nullptr, longtermmemory::Memory* longtermmemory = nullptr);
+        MemoryToIceAdapter(wm::Memory* workingmemory = nullptr, ltm::Memory* longtermmemory = nullptr);
 
         void setMemoryListener(client::MemoryListenerInterfacePrx memoryListener);
 
@@ -50,8 +50,8 @@ namespace armarx::armem::server
 
     public:
 
-        workingmemory::Memory* workingmemory;
-        longtermmemory::Memory* longtermmemory;
+        wm::Memory* workingmemory;
+        ltm::Memory* longtermmemory;
 
         client::MemoryListenerInterfacePrx memoryListener;
 
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.cpp
deleted file mode 100644
index 5bb5942e8..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "BaseQueryProcessor.h"
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h
similarity index 96%
rename from source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h
index 77526c56a..3ea2b0bdd 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h
@@ -5,7 +5,7 @@
 #include <RobotAPI/libraries/armem/core/DataMode.h>
 
 
-namespace armarx::armem::query_proc
+namespace armarx::armem::base::query_proc
 {
 
     /**
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.cpp
deleted file mode 100644
index 474ed5e5c..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "CoreSegmentQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-#include <RobotAPI/libraries/armem/core/error.h>
-
-
-namespace armarx::armem::query_proc
-{
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h
similarity index 91%
rename from source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h
index 04b7f3ff3..f8ab8c113 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h
@@ -2,8 +2,8 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "BaseQueryProcessor.h"
-#include "ProviderSegmentQueryProcessor.h"
+#include "BaseQueryProcessorBase.h"
+#include "ProviderSegmentQueryProcessorBase.h"
 
 #include <regex>
 
@@ -14,7 +14,7 @@
 
 
 
-namespace armarx::armem::query_proc
+namespace armarx::armem::base::query_proc
 {
 
     /**
@@ -25,9 +25,12 @@ namespace armarx::armem::query_proc
         virtual public BaseQueryProcessorBase<_CoreSegmentT, armem::query::data::CoreSegmentQuery>
     {
         using Base = BaseQueryProcessorBase<_CoreSegmentT, armem::query::data::CoreSegmentQuery>;
-        using ProviderSegmentT = typename _CoreSegmentT::ProviderSegmentT;
 
     public:
+        using CoreSegmentT = _CoreSegmentT;
+        using ProviderSegmentT = typename _CoreSegmentT::ProviderSegmentT;
+        using EntityT = typename ProviderSegmentT::EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
 
         using Base::process;
         void process(_CoreSegmentT& result,
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.cpp
deleted file mode 100644
index 25f477bf0..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "EntityQueryProcessor.h"
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.h
similarity index 96%
rename from source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.h
index 4558dbfad..447bd259a 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.h
@@ -2,7 +2,7 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "BaseQueryProcessor.h"
+#include "BaseQueryProcessorBase.h"
 
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
@@ -11,7 +11,7 @@
 #include <RobotAPI/libraries/armem/core/ice_conversions.h>
 
 
-namespace armarx::armem::query_proc
+namespace armarx::armem::base::query_proc
 {
 
     /**
@@ -22,9 +22,11 @@ namespace armarx::armem::query_proc
         virtual public BaseQueryProcessorBase<_EntityT, armem::query::data::EntityQuery>
     {
         using Base = BaseQueryProcessorBase<_EntityT, armem::query::data::EntityQuery>;
-        using EntitySnapshotT = typename _EntityT::EntitySnapshotT;
 
     public:
+        using EntityT = _EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
+
         using Base::process;
         void process(_EntityT& result,
                      const armem::query::data::EntityQuery& query,
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.cpp
deleted file mode 100644
index c1caf0c27..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "MemoryQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.h
similarity index 85%
rename from source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.h
index d9937eed3..c50086b55 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.h
@@ -4,8 +4,8 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "BaseQueryProcessor.h"
-#include "CoreSegmentQueryProcessor.h"
+#include "BaseQueryProcessorBase.h"
+#include "CoreSegmentQueryProcessorBase.h"
 
 
 #include <ArmarXCore/core/logging/Logging.h>
@@ -14,19 +14,23 @@
 #include <RobotAPI/libraries/armem/core/error.h>
 
 
-namespace armarx::armem::query_proc
+namespace armarx::armem::base::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     template <class _MemoryT>
     class MemoryQueryProcessorBase :
-            virtual public BaseQueryProcessorBase<_MemoryT, armem::query::data::MemoryQuery>
+        virtual public BaseQueryProcessorBase<_MemoryT, armem::query::data::MemoryQuery>
     {
         using Base = BaseQueryProcessorBase<_MemoryT, armem::query::data::MemoryQuery>;
-        using CoreSegmentT = typename _MemoryT::CoreSegmentT;
 
     public:
+        using MemoryT = _MemoryT;
+        using CoreSegmentT = typename MemoryT::CoreSegmentT;
+        using ProviderSegmentT = typename CoreSegmentT::ProviderSegmentT;
+        using EntityT = typename ProviderSegmentT::EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
 
         void process(_MemoryT& result,
                      const armem::query::data::MemoryQuery& query,
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.cpp
deleted file mode 100644
index d07f30836..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "ProviderSegmentQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.h
similarity index 91%
rename from source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.h
index ff586eb47..b3b7da7ff 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.h
@@ -2,8 +2,8 @@
 
 #include <RobotAPI/interface/armem/query.h>
 
-#include "BaseQueryProcessor.h"
-#include "EntityQueryProcessor.h"
+#include "BaseQueryProcessorBase.h"
+#include "EntityQueryProcessorBase.h"
 
 #include <regex>
 
@@ -13,7 +13,7 @@
 #include <RobotAPI/libraries/armem/core/error.h>
 
 
-namespace armarx::armem::query_proc
+namespace armarx::armem::base::query_proc
 {
 
     /**
@@ -24,9 +24,12 @@ namespace armarx::armem::query_proc
         virtual public BaseQueryProcessorBase<_ProviderSegmentT, armem::query::data::ProviderSegmentQuery>
     {
         using Base = BaseQueryProcessorBase<_ProviderSegmentT, armem::query::data::ProviderSegmentQuery>;
-        using EntityT = typename _ProviderSegmentT::EntityT;
 
     public:
+        using ProviderSegmentT = _ProviderSegmentT;
+        using EntityT = typename ProviderSegmentT::EntityT;
+        using EntitySnapshotT = typename EntityT::EntitySnapshotT;
+
         using Base::process;
         void process(_ProviderSegmentT& result,
                      const armem::query::data::ProviderSegmentQuery& query,
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.cpp
deleted file mode 100644
index 5bb5942e8..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "BaseQueryProcessor.h"
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.cpp
deleted file mode 100644
index 474ed5e5c..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "CoreSegmentQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-#include <RobotAPI/libraries/armem/core/error.h>
-
-
-namespace armarx::armem::query_proc
-{
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.cpp
deleted file mode 100644
index 25f477bf0..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "EntityQueryProcessor.h"
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.h
deleted file mode 100644
index d7306cb30..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/EntityQueryProcessor.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#include "BaseQueryProcessor.h"
-#include "../base/EntityQueryProcessor.h"
-
-#include "../../../core/longtermMemory/Entity.h"
-
-#include "EntityQueryProcessor.h"
-
-namespace armarx::armem::longtermmemory::query_proc
-{
-    /**
-     * @brief Handles memory queries.
-     */
-    class EntityQueryProcessor :
-            virtual public BaseQueryProcessor<longtermmemory::Entity, armem::query::data::EntityQuery>,
-            virtual public armarx::armem::query_proc::EntityQueryProcessorBase<longtermmemory::Entity>
-    {
-        using Base = BaseQueryProcessor<longtermmemory::Entity, armem::query::data::EntityQuery>;
-
-    public:
-        EntityQueryProcessor() :
-            Base()
-        {}
-
-    private:
-        void addResultSnapshot(longtermmemory::Entity& result, longtermmemory::Entity::ContainerT::const_iterator it) const override
-        {
-            addResultSnapshot(result, it->second);
-        }
-
-        void addResultSnapshot(longtermmemory::Entity& result, const longtermmemory::EntitySnapshot& snapshot) const override
-        {
-            result.addSnapshot(snapshot.copy());
-        }
-
-    };
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.cpp
deleted file mode 100644
index c1caf0c27..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "MemoryQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.cpp
deleted file mode 100644
index d07f30836..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "ProviderSegmentQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.h
deleted file mode 100644
index 57cb91c41..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/ProviderSegmentQueryProcessor.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-#include "BaseQueryProcessor.h"
-#include "../base/ProviderSegmentQueryProcessor.h"
-
-#include "../../../core/longtermMemory/ProviderSegment.h"
-
-#include "EntityQueryProcessor.h"
-
-namespace armarx::armem::longtermmemory::query_proc
-{
-    /**
-     * @brief Handles memory queries.
-     */
-    class ProviderSegmentQueryProcessor :
-        virtual public BaseQueryProcessor<longtermmemory::ProviderSegment, armem::query::data::ProviderSegmentQuery>,
-        virtual public armarx::armem::query_proc::ProviderSegmentQueryProcessorBase<longtermmemory::ProviderSegment>
-    {
-        using Base = BaseQueryProcessor<longtermmemory::ProviderSegment, armem::query::data::ProviderSegmentQuery>;
-        using EntityT = longtermmemory::ProviderSegment::EntityT;
-
-    public:
-        ProviderSegmentQueryProcessor() :
-            Base()
-        {}
-
-    protected:
-        virtual EntityT entityProcessorProcess(const armem::query::data::EntityQuerySeq& q, const EntityT& s) const override
-        {
-            return entityProcessor.process(q, s);
-        }
-
-    private:
-        EntityQueryProcessor entityProcessor;
-
-    };
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/BaseQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/BaseQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/BaseQueryProcessor.h
similarity index 55%
rename from source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/BaseQueryProcessor.h
index c129b8545..458128e53 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/BaseQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/BaseQueryProcessor.h
@@ -3,21 +3,21 @@
 #include <RobotAPI/interface/armem/query.h>
 #include <RobotAPI/libraries/armem/core/DataMode.h>
 
-#include "../base/BaseQueryProcessor.h"
+#include "../base/BaseQueryProcessorBase.h"
 
 
-namespace armarx::armem::longtermmemory::query_proc
+namespace armarx::armem::ltm::query_proc
 {
     /**
      * @brief Base class for memory query processors.
      */
     template <class DataT, class QueryT>
     class BaseQueryProcessor :
-            virtual public armarx::armem::query_proc::BaseQueryProcessorBase<DataT, QueryT>
+        virtual public base::query_proc::BaseQueryProcessorBase<DataT, QueryT>
     {
-    public:
-        using Base = armarx::armem::query_proc::BaseQueryProcessorBase<DataT, QueryT>;
+        using Base = base::query_proc::BaseQueryProcessorBase<DataT, QueryT>;
 
+    public:
         BaseQueryProcessor()
         {}
 
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/CoreSegmentQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/CoreSegmentQueryProcessor.h
similarity index 52%
rename from source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/CoreSegmentQueryProcessor.h
index 17c07c312..dc379f1d8 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/CoreSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/CoreSegmentQueryProcessor.h
@@ -1,24 +1,23 @@
 #pragma once
 
 #include "BaseQueryProcessor.h"
-#include "../base/CoreSegmentQueryProcessor.h"
+#include "../base/CoreSegmentQueryProcessorBase.h"
 
-#include "../../../core/longtermMemory/CoreSegment.h"
+#include "../../../core/longtermmemory/CoreSegment.h"
 
 #include "ProviderSegmentQueryProcessor.h"
 
 
-namespace armarx::armem::longtermmemory::query_proc
+namespace armarx::armem::ltm::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     class CoreSegmentQueryProcessor :
-        virtual public BaseQueryProcessor<longtermmemory::CoreSegment, armem::query::data::CoreSegmentQuery>,
-        virtual public armarx::armem::query_proc::CoreSegmentQueryProcessorBase<longtermmemory::CoreSegment>
+        virtual public BaseQueryProcessor<ltm::CoreSegment, armem::query::data::CoreSegmentQuery>,
+        virtual public base::query_proc::CoreSegmentQueryProcessorBase<ltm::CoreSegment>
     {
-        using Base = BaseQueryProcessor<longtermmemory::CoreSegment, armem::query::data::CoreSegmentQuery>;
-        using ProviderSegmentT = typename longtermmemory::CoreSegment::ProviderSegmentT;
+        using Base = BaseQueryProcessor<ltm::CoreSegment, armem::query::data::CoreSegmentQuery>;
 
     public:
         CoreSegmentQueryProcessor() :
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.h
new file mode 100644
index 000000000..5ec4c5dde
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/EntityQueryProcessor.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "BaseQueryProcessor.h"
+#include "../base/EntityQueryProcessorBase.h"
+
+#include "../../../core/longtermmemory/Entity.h"
+
+#include "EntityQueryProcessor.h"
+
+namespace armarx::armem::ltm::query_proc
+{
+    /**
+     * @brief Handles memory queries.
+     */
+    class EntityQueryProcessor :
+        virtual public BaseQueryProcessor<ltm::Entity, armem::query::data::EntityQuery>,
+        virtual public base::query_proc::EntityQueryProcessorBase<ltm::Entity>
+    {
+        using Base = BaseQueryProcessor<ltm::Entity, armem::query::data::EntityQuery>;
+
+    public:
+        EntityQueryProcessor() :
+            Base()
+        {}
+
+    private:
+        void addResultSnapshot(ltm::Entity& result, ltm::Entity::ContainerT::const_iterator it) const override
+        {
+            addResultSnapshot(result, it->second);
+        }
+
+        void addResultSnapshot(ltm::Entity& result, const ltm::EntitySnapshot& snapshot) const override
+        {
+            result.addSnapshot(snapshot.copy());
+        }
+
+    };
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/MemoryQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/MemoryQueryProcessor.h
similarity index 52%
rename from source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/MemoryQueryProcessor.h
index 6e70fb7b0..a51294172 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/longtermMemory/MemoryQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/MemoryQueryProcessor.h
@@ -1,23 +1,22 @@
 #pragma once
 
 #include "BaseQueryProcessor.h"
-#include "../base/MemoryQueryProcessor.h"
+#include "../base/MemoryQueryProcessorBase.h"
 
-#include "../../../core/longtermMemory/Memory.h"
+#include "../../../core/longtermmemory/Memory.h"
 
 #include "CoreSegmentQueryProcessor.h"
 
-namespace armarx::armem::longtermmemory::query_proc
+namespace armarx::armem::ltm::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     class MemoryQueryProcessor :
-            virtual public BaseQueryProcessor<longtermmemory::Memory, armem::query::data::MemoryQuery>,
-            virtual public armarx::armem::query_proc::MemoryQueryProcessorBase<longtermmemory::Memory>
+        virtual public BaseQueryProcessor<ltm::Memory, armem::query::data::MemoryQuery>,
+        virtual public base::query_proc::MemoryQueryProcessorBase<ltm::Memory>
     {
-        using Base = BaseQueryProcessor<longtermmemory::Memory, armem::query::data::MemoryQuery>;
-        using CoreSegmentT = typename longtermmemory::Memory::CoreSegmentT;
+        using Base = BaseQueryProcessor<ltm::Memory, armem::query::data::MemoryQuery>;
 
     public:
         MemoryQueryProcessor() :
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.h
new file mode 100644
index 000000000..e0c6db9e3
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/server/query_proc/longtermmemory/ProviderSegmentQueryProcessor.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "BaseQueryProcessor.h"
+#include "../base/ProviderSegmentQueryProcessorBase.h"
+
+#include "../../../core/longtermmemory/ProviderSegment.h"
+
+#include "EntityQueryProcessor.h"
+
+namespace armarx::armem::ltm::query_proc
+{
+    /**
+     * @brief Handles memory queries.
+     */
+    class ProviderSegmentQueryProcessor :
+        virtual public BaseQueryProcessor<ltm::ProviderSegment, armem::query::data::ProviderSegmentQuery>,
+        virtual public base::query_proc::ProviderSegmentQueryProcessorBase<ltm::ProviderSegment>
+    {
+        using Base = BaseQueryProcessor<ltm::ProviderSegment, armem::query::data::ProviderSegmentQuery>;
+
+    public:
+        ProviderSegmentQueryProcessor() :
+            Base()
+        {}
+
+    protected:
+        virtual EntityT entityProcessorProcess(const armem::query::data::EntityQuerySeq& q, const EntityT& s) const override
+        {
+            return entityProcessor.process(q, s);
+        }
+
+    private:
+        EntityQueryProcessor entityProcessor;
+
+    };
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.cpp
deleted file mode 100644
index 5bb5942e8..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "BaseQueryProcessor.h"
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.cpp
deleted file mode 100644
index 474ed5e5c..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "CoreSegmentQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-#include <RobotAPI/libraries/armem/core/error.h>
-
-
-namespace armarx::armem::query_proc
-{
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.cpp
deleted file mode 100644
index 25f477bf0..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "EntityQueryProcessor.h"
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.cpp
deleted file mode 100644
index c1caf0c27..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "MemoryQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.cpp
deleted file mode 100644
index d07f30836..000000000
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "ProviderSegmentQueryProcessor.h"
-
-#include <regex>
-
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-
-#include <RobotAPI/libraries/armem/core/error.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-
-
-namespace armarx::armem::query_proc
-{
-
-}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h
similarity index 61%
rename from source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h
index dee5d621c..f2645b475 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/BaseQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h
@@ -3,21 +3,21 @@
 #include <RobotAPI/interface/armem/query.h>
 #include <RobotAPI/libraries/armem/core/DataMode.h>
 
-#include "../base/BaseQueryProcessor.h"
+#include "../base/BaseQueryProcessorBase.h"
 
 
-namespace armarx::armem::workingmemory::query_proc
+namespace armarx::armem::wm::query_proc
 {
     /**
      * @brief Base class for memory query processors.
      */
     template <class DataT, class QueryT>
     class BaseQueryProcessor :
-            virtual public armarx::armem::query_proc::BaseQueryProcessorBase<DataT, QueryT>
+        virtual public base::query_proc::BaseQueryProcessorBase<DataT, QueryT>
     {
-    public:
-        using Base = armarx::armem::query_proc::BaseQueryProcessorBase<DataT, QueryT>;
+        using Base = base::query_proc::BaseQueryProcessorBase<DataT, QueryT>;
 
+    public:
         BaseQueryProcessor(DataMode dataMode = DataMode::WithData) :
             dataMode(dataMode)
         {}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
similarity index 57%
rename from source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
index 6cc1dea86..160ccd18d 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/CoreSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
@@ -1,24 +1,23 @@
 #pragma once
 
 #include "BaseQueryProcessor.h"
-#include "../base/CoreSegmentQueryProcessor.h"
+#include "../base/CoreSegmentQueryProcessorBase.h"
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
 #include "ProviderSegmentQueryProcessor.h"
 
 
-namespace armarx::armem::workingmemory::query_proc
+namespace armarx::armem::wm::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     class CoreSegmentQueryProcessor :
-        virtual public BaseQueryProcessor<workingmemory::CoreSegment, armem::query::data::CoreSegmentQuery>,
-        virtual public armarx::armem::query_proc::CoreSegmentQueryProcessorBase<workingmemory::CoreSegment>
+        virtual public BaseQueryProcessor<wm::CoreSegment, armem::query::data::CoreSegmentQuery>,
+        virtual public base::query_proc::CoreSegmentQueryProcessorBase<wm::CoreSegment>
     {
-        using Base = BaseQueryProcessor<workingmemory::CoreSegment, armem::query::data::CoreSegmentQuery>;
-        using ProviderSegmentT = typename workingmemory::CoreSegment::ProviderSegmentT;
+        using Base = BaseQueryProcessor<wm::CoreSegment, armem::query::data::CoreSegmentQuery>;
 
     public:
         CoreSegmentQueryProcessor(DataMode dataMode = DataMode::WithData) :
@@ -26,7 +25,7 @@ namespace armarx::armem::workingmemory::query_proc
         {}
 
         using Base::process;
-        data::CoreSegment processToIce(const armem::query::data::CoreSegmentQuery& query, const workingmemory::CoreSegment& coreSegment) const
+        data::CoreSegment processToIce(const armem::query::data::CoreSegmentQuery& query, const wm::CoreSegment& coreSegment) const
         {
             return toIce<data::CoreSegment>(process(query, coreSegment));
         }
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h
similarity index 52%
rename from source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h
index eaf0c84af..62e24dd46 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/EntityQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h
@@ -1,40 +1,40 @@
 #pragma once
 
-#include "BaseQueryProcessor.h"
-#include "../base/EntityQueryProcessor.h"
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include "BaseQueryProcessor.h"
+#include "../base/EntityQueryProcessorBase.h"
 
 #include "EntityQueryProcessor.h"
 
-namespace armarx::armem::workingmemory::query_proc
+namespace armarx::armem::wm::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     class EntityQueryProcessor :
-            virtual public BaseQueryProcessor<workingmemory::Entity, armem::query::data::EntityQuery>,
-            virtual public armarx::armem::query_proc::EntityQueryProcessorBase<workingmemory::Entity>
+        virtual public BaseQueryProcessor<wm::Entity, armem::query::data::EntityQuery>,
+        virtual public base::query_proc::EntityQueryProcessorBase<wm::Entity>
     {
-        using Base = BaseQueryProcessor<workingmemory::Entity, armem::query::data::EntityQuery>;
+        using Base = BaseQueryProcessor<wm::Entity, armem::query::data::EntityQuery>;
 
     public:
         EntityQueryProcessor(DataMode dataMode = DataMode::WithData) :
             Base(dataMode)
         {}
 
-        data::Entity processToIce(const armem::query::data::EntityQuery& query, const workingmemory::Entity& entity) const
+        data::Entity processToIce(const armem::query::data::EntityQuery& query, const wm::Entity& entity) const
         {
             return toIce<data::Entity>(process(query, entity));
         }
 
     private:
-        void addResultSnapshot(workingmemory::Entity& result, workingmemory::Entity::ContainerT::const_iterator it) const override
+        void addResultSnapshot(wm::Entity& result, wm::Entity::ContainerT::const_iterator it) const override
         {
             addResultSnapshot(result, it->second);
         }
 
-        void addResultSnapshot(workingmemory::Entity& result, const workingmemory::EntitySnapshot& snapshot) const override
+        void addResultSnapshot(wm::Entity& result, const wm::EntitySnapshot& snapshot) const override
         {
             bool withData = (dataMode == DataMode::WithData);
             if (withData)
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h
similarity index 62%
rename from source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h
index 26a589619..dc82f403e 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/MemoryQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h
@@ -1,23 +1,22 @@
 #pragma once
 
 #include "BaseQueryProcessor.h"
-#include "../base/MemoryQueryProcessor.h"
+#include "../base/MemoryQueryProcessorBase.h"
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
 #include "CoreSegmentQueryProcessor.h"
 
-namespace armarx::armem::workingmemory::query_proc
+namespace armarx::armem::wm::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     class MemoryQueryProcessor :
-            virtual public BaseQueryProcessor<workingmemory::Memory, armem::query::data::MemoryQuery>,
-            virtual public armarx::armem::query_proc::MemoryQueryProcessorBase<workingmemory::Memory>
+        virtual public BaseQueryProcessor<wm::Memory, armem::query::data::MemoryQuery>,
+        virtual public base::query_proc::MemoryQueryProcessorBase<wm::Memory>
     {
-        using Base = BaseQueryProcessor<workingmemory::Memory, armem::query::data::MemoryQuery>;
-        using CoreSegmentT = typename workingmemory::Memory::CoreSegmentT;
+        using Base = BaseQueryProcessor<wm::Memory, armem::query::data::MemoryQuery>;
 
     public:
         MemoryQueryProcessor(DataMode dataMode = DataMode::WithData) :
@@ -25,7 +24,7 @@ namespace armarx::armem::workingmemory::query_proc
         {}
 
         armem::query::data::Result process(const armem::query::data::Input& input,
-                                           const workingmemory::Memory& memory) const
+                                           const wm::Memory& memory) const
         {
             armem::query::data::Result result;
             result.memory = processToIce(input.memoryQueries, memory);
@@ -35,13 +34,13 @@ namespace armarx::armem::workingmemory::query_proc
 
         using Base::process;
         data::MemoryPtr processToIce(const armem::query::data::MemoryQuery& query,
-                                     const workingmemory::Memory& memory) const
+                                     const wm::Memory& memory) const
         {
             return toIce<data::MemoryPtr>(process(query, memory));
         }
 
         data::MemoryPtr processToIce(const armem::query::data::MemoryQuerySeq& queries,
-                                     const workingmemory::Memory& memory) const
+                                     const wm::Memory& memory) const
         {
             return toIce<data::MemoryPtr>(process(queries, memory));
         }
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
similarity index 55%
rename from source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.h
rename to source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
index abaa868f9..4f88a1709 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingMemory/ProviderSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
@@ -1,23 +1,22 @@
 #pragma once
 
 #include "BaseQueryProcessor.h"
-#include "../base/ProviderSegmentQueryProcessor.h"
+#include "../base/ProviderSegmentQueryProcessorBase.h"
 
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
 #include "EntityQueryProcessor.h"
 
-namespace armarx::armem::workingmemory::query_proc
+namespace armarx::armem::wm::query_proc
 {
     /**
      * @brief Handles memory queries.
      */
     class ProviderSegmentQueryProcessor :
-        virtual public BaseQueryProcessor<workingmemory::ProviderSegment, armem::query::data::ProviderSegmentQuery>,
-        virtual public armarx::armem::query_proc::ProviderSegmentQueryProcessorBase<workingmemory::ProviderSegment>
+        virtual public BaseQueryProcessor<wm::ProviderSegment, armem::query::data::ProviderSegmentQuery>,
+        virtual public base::query_proc::ProviderSegmentQueryProcessorBase<wm::ProviderSegment>
     {
-        using Base = BaseQueryProcessor<workingmemory::ProviderSegment, armem::query::data::ProviderSegmentQuery>;
-        using EntityT = workingmemory::ProviderSegment::EntityT;
+        using Base = BaseQueryProcessor<wm::ProviderSegment, armem::query::data::ProviderSegmentQuery>;
 
     public:
         ProviderSegmentQueryProcessor(DataMode dataMode = DataMode::WithData) :
@@ -25,7 +24,7 @@ namespace armarx::armem::workingmemory::query_proc
         {}
 
         using Base::process;
-        data::ProviderSegment processToIce(const armem::query::data::ProviderSegmentQuery& query, const workingmemory::ProviderSegment& providerSegment) const
+        data::ProviderSegment processToIce(const armem::query::data::ProviderSegmentQuery& query, const wm::ProviderSegment& providerSegment) const
         {
             return toIce<data::ProviderSegment>(process(query, providerSegment));
         }
diff --git a/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp
index 171e40614..1d016e783 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemIceConversionsTest.cpp
@@ -25,9 +25,7 @@
 #define ARMARX_BOOST_TEST
 
 #include <RobotAPI/Test.h>
-#include "../core/ice_conversions_templates.h"
-#include "../core/ice_conversions.h"
-#include "../core/workingMemory/ice_conversions.h"
+#include "../core/workingmemory/ice_conversions.h"
 
 
 #include <iostream>
@@ -40,11 +38,11 @@ namespace aron = armarx::aron;
 
 BOOST_AUTO_TEST_CASE(test_entity)
 {
-    armem::workingmemory::Entity entity("entity");
+    armem::wm::Entity entity("entity");
 
     std::vector<armem::Time> expectedTimestamps;
 
-    armem::workingmemory::EntitySnapshot snapshot;
+    armem::wm::EntitySnapshot snapshot;
     snapshot.time() = armem::Time::milliSeconds(100);
     expectedTimestamps.push_back(snapshot.time());
     entity.addSnapshot(snapshot);
@@ -63,7 +61,7 @@ BOOST_AUTO_TEST_CASE(test_entity)
 
     BOOST_CHECK_EQUAL(ice->history.size(), entity.history().size());
 
-    armem::workingmemory::Entity entityOut;
+    armem::wm::Entity entityOut;
     armem::fromIce(ice, entityOut);
 
     BOOST_CHECK_EQUAL(entityOut.history().size(), entity.history().size());
diff --git a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
index 1370c0649..f6271553e 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
@@ -25,7 +25,7 @@
 #define ARMARX_BOOST_TEST
 
 #include <RobotAPI/Test.h>
-#include "../core/workingMemory/Memory.h"
+#include "../core/workingmemory/Memory.h"
 #include "../core/error.h"
 
 #include <RobotAPI/libraries/aron/core/navigator/data/AllNavigators.h>
@@ -34,7 +34,7 @@
 
 #include <RobotAPI/libraries/aron/core/Debug.h>
 
-#include "../core/longtermMemory/Memory.h"
+#include "../core/longtermmemory/Memory.h"
 
 //#include "../core/io/diskWriter/NlohmannJSON/NlohmannJSONDiskWriter.h"
 
@@ -82,7 +82,7 @@ namespace ArMemLTMTest
         }
 
 
-        static armem::workingmemory::Memory setupMemoryWithType(
+        static armem::wm::Memory setupMemoryWithType(
             const std::string& memoryName,
             const aron::typenavigator::ObjectNavigatorPtr& t1,
             const aron::typenavigator::ObjectNavigatorPtr& t2,
@@ -91,14 +91,14 @@ namespace ArMemLTMTest
         {
             aron::Randomizer r;
 
-            armem::workingmemory::Memory memory(memoryName);
+            armem::wm::Memory memory(memoryName);
             BOOST_CHECK_EQUAL(memory.name(), memoryName);
 
-            armem::workingmemory::CoreSegment& coreSegment = memory.addCoreSegment("TestCoreSegment");
+            armem::wm::CoreSegment& coreSegment = memory.addCoreSegment("TestCoreSegment");
             BOOST_CHECK_EQUAL(coreSegment.name(), "TestCoreSegment");
             BOOST_CHECK(memory.hasCoreSegment(coreSegment.name()));
 
-            armem::workingmemory::ProviderSegment& providerSegment = coreSegment.addProviderSegment("TestProvider");
+            armem::wm::ProviderSegment& providerSegment = coreSegment.addProviderSegment("TestProvider");
             BOOST_CHECK_EQUAL(providerSegment.name(), "TestProvider");
             BOOST_CHECK(coreSegment.hasProviderSegment(providerSegment.name()));
 
diff --git a/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
index 11bb8af09..b852295ff 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
@@ -26,7 +26,7 @@
 
 #include <RobotAPI/Test.h>
 
-#include "../core/workingMemory/Memory.h"
+#include "../core/workingmemory/Memory.h"
 #include "../core/error.h"
 
 
@@ -80,7 +80,7 @@ BOOST_AUTO_TEST_CASE(test_segment_setup)
 {
     armem::EntityUpdate update;
 
-    armem::workingmemory::Memory memory("Memory");
+    armem::wm::Memory memory("Memory");
     BOOST_CHECK_EQUAL(memory.name(), "Memory");
     {
         update.entityID = armem::MemoryID::fromString("OtherMemory/SomeSegment");
@@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE(test_segment_setup)
         BOOST_CHECK_THROW(memory.update(update), armem::error::MissingEntry);
     }
 
-    armem::workingmemory::CoreSegment& coreSegment = memory.addCoreSegment("ImageRGB");
+    armem::wm::CoreSegment& coreSegment = memory.addCoreSegment("ImageRGB");
     BOOST_CHECK_EQUAL(coreSegment.name(), "ImageRGB");
     BOOST_CHECK(memory.hasCoreSegment(coreSegment.name()));
     {
@@ -99,7 +99,7 @@ BOOST_AUTO_TEST_CASE(test_segment_setup)
         BOOST_CHECK_THROW(coreSegment.update(update), armem::error::MissingEntry);
     }
 
-    armem::workingmemory::ProviderSegment& providerSegment = coreSegment.addProviderSegment("SomeRGBImageProvider");
+    armem::wm::ProviderSegment& providerSegment = coreSegment.addProviderSegment("SomeRGBImageProvider");
     BOOST_CHECK_EQUAL(providerSegment.name(), "SomeRGBImageProvider");
     BOOST_CHECK(coreSegment.hasProviderSegment(providerSegment.name()));
     {
@@ -123,12 +123,12 @@ BOOST_AUTO_TEST_CASE(test_segment_setup)
     BOOST_CHECK(providerSegment.hasEntity("image"));
     BOOST_CHECK(!providerSegment.hasEntity("other_image"));
 
-    armem::workingmemory::Entity& entity = providerSegment.getEntity("image");
+    armem::wm::Entity& entity = providerSegment.getEntity("image");
     BOOST_CHECK_EQUAL(entity.name(), "image");
     BOOST_CHECK_EQUAL(entity.history().size(), 1);
     BOOST_CHECK_EQUAL(entity.history().count(update.timeCreated), 1);
 
-    armem::workingmemory::EntitySnapshot& entitySnapshot = entity.history().at(update.timeCreated);
+    armem::wm::EntitySnapshot& entitySnapshot = entity.history().at(update.timeCreated);
     BOOST_CHECK_EQUAL(entitySnapshot.instances().size(), update.instancesData.size());
 
 
@@ -154,7 +154,7 @@ BOOST_AUTO_TEST_CASE(test_segment_setup)
 
 BOOST_AUTO_TEST_CASE(test_history_size_in_entity)
 {
-    armem::workingmemory::Entity entity("entity");
+    armem::wm::Entity entity("entity");
 
     armem::EntityUpdate update;
     update.entityID.entityName = entity.name();
@@ -197,7 +197,7 @@ BOOST_AUTO_TEST_CASE(test_history_size_in_entity)
 
 BOOST_AUTO_TEST_CASE(test_history_size_in_provider_segment)
 {
-    armem::workingmemory::ProviderSegment providerSegment("SomeRGBImageProvider");
+    armem::wm::ProviderSegment providerSegment("SomeRGBImageProvider");
 
     armem::EntityUpdate update;
     update.entityID.providerSegmentName = providerSegment.name();
diff --git a/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp
index c9dea813f..535735b09 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemQueryBuilderTest.cpp
@@ -27,7 +27,7 @@
 #include <RobotAPI/Test.h>
 #include "../client/query/Builder.h"
 #include "../client/query/query_fns.h"
-#include "../core/workingMemory/ice_conversions.h"
+#include "../core/workingmemory/ice_conversions.h"
 
 #include <iostream>
 
diff --git a/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
index 4f0f297dd..42d357b00 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 "../server/query_proc/workingMemory/EntityQueryProcessor.h"
+#include "../server/query_proc/workingmemory/EntityQueryProcessor.h"
 #include "../error.h"
 
 
@@ -38,7 +38,7 @@
 namespace armem = armarx::armem;
 namespace aron = armarx::aron;
 namespace query = armarx::armem::query::data;
-using EntityQueryProcessor = armarx::armem::workingmemory::query_proc::EntityQueryProcessor;
+using EntityQueryProcessor = armarx::armem::wm::query_proc::EntityQueryProcessor;
 
 
 namespace ArMemQueryTest
@@ -50,19 +50,19 @@ namespace ArMemQueryTest
 
     struct Fixture
     {
-        armem::workingmemory::Entity entity;
+        armem::wm::Entity entity;
 
-        armem::workingmemory::query_proc::EntityQueryProcessor processor;
+        armem::wm::query_proc::EntityQueryProcessor processor;
         query::EntityQueryPtr entityQuery;
 
-        std::vector<armem::workingmemory::Entity> results;
+        std::vector<armem::wm::Entity> results;
 
 
         Fixture()
         {
-            entity = armem::workingmemory::Entity("entity");
+            entity = armem::wm::Entity("entity");
 
-            armem::workingmemory::EntitySnapshot snapshot;
+            armem::wm::EntitySnapshot snapshot;
             snapshot.time() = armem::Time::microSeconds(1000);
             entity.addSnapshot(snapshot);
             snapshot.time() = armem::Time::microSeconds(2000);
@@ -119,7 +119,7 @@ BOOST_AUTO_TEST_CASE(test_entity_Single_latest)
     addResults(query::entity::Single());
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
         BOOST_CHECK_EQUAL(result.size(), 1);
@@ -134,7 +134,7 @@ BOOST_AUTO_TEST_CASE(test_entity_Single_existing)
     addResults(query::entity::Single { 3000 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
         BOOST_CHECK_EQUAL(result.size(), 1);
@@ -148,7 +148,7 @@ BOOST_AUTO_TEST_CASE(test_entity_Single_non_existing)
     addResults(query::entity::Single { 3500 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
         BOOST_CHECK_EQUAL(result.size(), 0);
@@ -161,7 +161,7 @@ BOOST_AUTO_TEST_CASE(test_entity_All)
     addResults(query::entity::All());
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
         BOOST_CHECK_EQUAL(result.size(), entity.size());
@@ -182,7 +182,7 @@ BOOST_AUTO_TEST_CASE(test_entity_TimeRange_slice)
     addResults(query::entity::TimeRange{ 1500, 3500 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -203,7 +203,7 @@ BOOST_AUTO_TEST_CASE(test_entity_TimeRange_exact)
     addResults(query::entity::TimeRange{ 2000, 4000 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -224,7 +224,7 @@ BOOST_AUTO_TEST_CASE(test_entity_TimeRange_all)
     addResults(query::entity::TimeRange{ -1, -1 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -243,7 +243,7 @@ BOOST_AUTO_TEST_CASE(test_entity_TimeRange_empty)
     addResults(query::entity::TimeRange{ 6000, 1000 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -257,7 +257,7 @@ BOOST_AUTO_TEST_CASE(test_entity_TimeRange_from_start)
     addResults(query::entity::TimeRange{ -1, 2500 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -278,7 +278,7 @@ BOOST_AUTO_TEST_CASE(test_entity_TimeRange_to_end)
     addResults(query::entity::TimeRange{ 2500, -1 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -332,7 +332,7 @@ BOOST_AUTO_TEST_CASE(test_entity_IndexRange_all_default)
     addResults(query::entity::IndexRange(0, -1));
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -355,7 +355,7 @@ BOOST_AUTO_TEST_CASE(test_entity_IndexRange_slice)
     addResults(query::entity::IndexRange{ -4, -2 });
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -383,7 +383,7 @@ BOOST_AUTO_TEST_CASE(test_entity_IndexRange_empty_range)
 
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
 
@@ -405,7 +405,7 @@ BOOST_AUTO_TEST_CASE(test_entity_IndexRange_empty_entity)
 
     BOOST_REQUIRE_GT(results.size(), 0);
 
-    for (const armem::workingmemory::Entity& result : results)
+    for (const armem::wm::Entity& result : results)
     {
         BOOST_CHECK_EQUAL(result.name(), entity.name());
         BOOST_CHECK_EQUAL(result.size(), 0);
diff --git a/source/RobotAPI/libraries/armem/util/util.h b/source/RobotAPI/libraries/armem/util/util.h
index 675ac16e4..91a31651c 100644
--- a/source/RobotAPI/libraries/armem/util/util.h
+++ b/source/RobotAPI/libraries/armem/util/util.h
@@ -26,8 +26,8 @@
 #include <vector>
 #include <optional>
 
-#include <RobotAPI/libraries/armem/core/workingMemory/Entity.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/EntityInstance.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Entity.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/EntityInstance.h>
 #include <RobotAPI/libraries/aron/core/codegenerator/codeWriter/cpp/AronCppClass.h>
 
 namespace armarx::armem
@@ -41,7 +41,7 @@ namespace armarx::armem
      * @return std::optional<AronClass>
      */
     template <typename AronClass>
-    std::optional<AronClass> tryCast(const workingmemory::EntityInstance& item)
+    std::optional<AronClass> tryCast(const wm::EntityInstance& item)
     {
         static_assert(std::is_base_of<armarx::aron::cppcodegenerator::AronCppClass,
                       AronClass>::value);
@@ -67,7 +67,7 @@ namespace armarx::armem
      */
     template <typename AronClass>
     std::vector<AronClass>
-    allOfType(const std::map<std::string, workingmemory::Entity>& entities)
+    allOfType(const std::map<std::string, wm::Entity>& entities)
     {
         static_assert(std::is_base_of<armarx::aron::cppcodegenerator::AronCppClass,
                       AronClass>::value);
@@ -113,7 +113,7 @@ namespace armarx::armem
      * @return vector of "pred"-transformed elements that can be cast to AronClass
      */
     template <typename AronClass>
-    auto transformAllOfType(const std::map<std::string, workingmemory::Entity>& entities,
+    auto transformAllOfType(const std::map<std::string, wm::Entity>& entities,
                             auto pred) -> std::vector<decltype(pred(AronClass()))>
     {
         static_assert(std::is_base_of<armarx::aron::cppcodegenerator::AronCppClass,
diff --git a/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp b/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
index 698b1ced4..694e98f08 100644
--- a/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
+++ b/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
@@ -1,9 +1,9 @@
 #include "MemoryViewer.h"
 
-#include <RobotAPI/libraries/armem/core/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 #include <RobotAPI/libraries/armem_gui/gui_utils.h>
 
-#include <RobotAPI/libraries/armem/core/diskMemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/diskmemory/Memory.h>
 
 #include <ArmarXGui/libraries/SimpleConfigDialog/SimpleConfigDialog.h>
 
@@ -155,7 +155,7 @@ namespace armarx::armem::gui
             armem::client::QueryInput input = memoryGroup->queryWidget()->queryInput();
             armem::client::QueryResult result = reader.query(input);
 
-            armem::diskMemory::Memory dMem(name);
+            armem::d_ltm::Memory dMem(name);
             ARMARX_IMPORTANT << "RELOAD";
             dMem.reload(p / name);
             ARMARX_IMPORTANT << "APPEND";
@@ -234,7 +234,7 @@ namespace armarx::armem::gui
             return;
         }
 
-        const std::optional<armem::workingmemory::Memory>& data = memoryData.at(selectedID.memoryName);
+        const std::optional<armem::wm::Memory>& data = memoryData.at(selectedID.memoryName);
 
         if (data)
         {
@@ -243,10 +243,10 @@ namespace armarx::armem::gui
                 return;
             }
             armem::MemoryID id = selectedID;
-            const armem::workingmemory::EntitySnapshot* snapshot = nullptr;
+            const armem::wm::EntitySnapshot* snapshot = nullptr;
             if (!id.hasTimestamp())
             {
-                const armem::workingmemory::Entity& entity = data->getEntity(id);
+                const armem::wm::Entity& entity = data->getEntity(id);
                 if (entity.empty())
                 {
                     return;
@@ -284,7 +284,7 @@ namespace armarx::armem::gui
 
     void MemoryViewer::updateMemoryTree()
     {
-        std::map<std::string, const armem::workingmemory::Memory*> convMap;
+        std::map<std::string, const armem::wm::Memory*> convMap;
         for (auto& [name, data] : memoryData)
         {
             if (data.has_value())
diff --git a/source/RobotAPI/libraries/armem_gui/MemoryViewer.h b/source/RobotAPI/libraries/armem_gui/MemoryViewer.h
index 7bcd788a0..c2c2e6f4c 100644
--- a/source/RobotAPI/libraries/armem_gui/MemoryViewer.h
+++ b/source/RobotAPI/libraries/armem_gui/MemoryViewer.h
@@ -104,7 +104,7 @@ namespace armarx::armem::gui
         armem::mns::MemoryNameSystemInterfacePrx mns;
 
         std::map<std::string, armem::client::Reader> memoryReaders;
-        std::map<std::string, std::optional<armem::workingmemory::Memory>> memoryData;
+        std::map<std::string, std::optional<armem::wm::Memory>> memoryData;
 
         QLayout* ltmControlWidgetLayout;
         armem::gui::LTMControlWidget* ltmControlWidget;
diff --git a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp
index ceaab2cd4..809201265 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp
+++ b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp
@@ -89,10 +89,10 @@ namespace armarx::armem::gui::instance
     }
 
 
-    void InstanceView::update(const MemoryID& id, const workingmemory::Memory& memory)
+    void InstanceView::update(const MemoryID& id, const wm::Memory& memory)
     {
         aron::typenavigator::ObjectNavigatorPtr aronType = nullptr;
-        const armem::workingmemory::EntityInstance* instance = nullptr;
+        const armem::wm::EntityInstance* instance = nullptr;
         try
         {
             instance = &memory.getEntityInstance(id);
@@ -113,7 +113,7 @@ namespace armarx::armem::gui::instance
     }
 
 
-    void InstanceView::update(const workingmemory::EntityInstance& instance, aron::typenavigator::ObjectNavigatorPtr aronType)
+    void InstanceView::update(const wm::EntityInstance& instance, aron::typenavigator::ObjectNavigatorPtr aronType)
     {
         currentInstance = instance;
         currentAronType = aronType;
@@ -168,7 +168,7 @@ namespace armarx::armem::gui::instance
         treeItemData->setExpanded(true);
     }
 
-    void InstanceView::updateMetaData(const workingmemory::EntityInstanceMetadata& metadata)
+    void InstanceView::updateMetaData(const wm::EntityInstanceMetadata& metadata)
     {
         std::vector<std::string> items =
         {
diff --git a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h
index ce81a17a1..0b0a0ee26 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h
+++ b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h
@@ -6,7 +6,7 @@
 
 #include <RobotAPI/libraries/aron/core/navigator/type/container/Object.h>
 
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
 
 
 class QGroupBox;
@@ -34,8 +34,8 @@ namespace armarx::armem::gui::instance
         void setStatusLabel(QLabel* statusLabel);
         void setUseTypeInfo(bool enable);
 
-        void update(const MemoryID& id, const workingmemory::Memory& memory);
-        void update(const workingmemory::EntityInstance& instance, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
+        void update(const MemoryID& id, const wm::Memory& memory);
+        void update(const wm::EntityInstance& instance, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
         void update();
 
 
@@ -56,7 +56,7 @@ namespace armarx::armem::gui::instance
 
         void updateInstanceID(const MemoryID& id);
         void updateData(const aron::datanavigator::DictNavigatorPtr& data, aron::typenavigator::ObjectNavigatorPtr aronType = nullptr);
-        void updateMetaData(const workingmemory::EntityInstanceMetadata& metadata);
+        void updateMetaData(const wm::EntityInstanceMetadata& metadata);
         void updateImageView(const aron::datanavigator::DictNavigatorPtr& data);
 
         void showErrorMessage(const std::string& message);
@@ -71,7 +71,7 @@ namespace armarx::armem::gui::instance
             TYPE = 2,
         };
 
-        std::optional<workingmemory::EntityInstance> currentInstance;
+        std::optional<wm::EntityInstance> currentInstance;
         aron::typenavigator::ObjectNavigatorPtr currentAronType = nullptr;
         bool useTypeInfo = true;
 
diff --git a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp
index cb3dc4671..20f0a2f1a 100644
--- a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp
+++ b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp
@@ -50,11 +50,11 @@ namespace armarx::armem::gui::memory
     void TreeWidget::initBuilders()
     {
         workingmemoryBuilder.setExpand(true);
-        workingmemoryBuilder.setMakeItemFn([this](const std::string & name, const workingmemory::Memory * memory)
+        workingmemoryBuilder.setMakeItemFn([this](const std::string & name, const wm::Memory * memory)
         {
             return makeItem(name, *memory);
         });
-        workingmemoryBuilder.setUpdateItemFn([this](const std::string&, const workingmemory::Memory * memory, QTreeWidgetItem * memoryItem)
+        workingmemoryBuilder.setUpdateItemFn([this](const std::string&, const wm::Memory * memory, QTreeWidgetItem * memoryItem)
         {
             updateContainerItem(*memory, memoryItem);
             if (memoryItem)
@@ -66,11 +66,11 @@ namespace armarx::armem::gui::memory
 
 
         workingmemoryCoreSegmentBuilder.setExpand(true);
-        workingmemoryCoreSegmentBuilder.setMakeItemFn([this](const std::string & name, const workingmemory::CoreSegment & coreSeg)
+        workingmemoryCoreSegmentBuilder.setMakeItemFn([this](const std::string & name, const wm::CoreSegment & coreSeg)
         {
             return makeItem(name, coreSeg);
         });
-        workingmemoryCoreSegmentBuilder.setUpdateItemFn([this](const std::string&, const workingmemory::CoreSegment & coreSeg, QTreeWidgetItem * coreSegItem)
+        workingmemoryCoreSegmentBuilder.setUpdateItemFn([this](const std::string&, const wm::CoreSegment & coreSeg, QTreeWidgetItem * coreSegItem)
         {
             updateTypedContainerItem(coreSeg, coreSegItem);
             updateChildren(coreSeg, coreSegItem);
@@ -78,11 +78,11 @@ namespace armarx::armem::gui::memory
         });
 
         workingmemoryProvSegmentBuilder.setExpand(true);
-        workingmemoryProvSegmentBuilder.setMakeItemFn([this](const std::string & name, const workingmemory::ProviderSegment & provSeg)
+        workingmemoryProvSegmentBuilder.setMakeItemFn([this](const std::string & name, const wm::ProviderSegment & provSeg)
         {
             return makeItem(name, provSeg);
         });
-        workingmemoryProvSegmentBuilder.setUpdateItemFn([this](const std::string&, const workingmemory::ProviderSegment & provSeg, QTreeWidgetItem * provSegItem)
+        workingmemoryProvSegmentBuilder.setUpdateItemFn([this](const std::string&, const wm::ProviderSegment & provSeg, QTreeWidgetItem * provSegItem)
         {
             updateTypedContainerItem(provSeg, provSegItem);
             updateChildren(provSeg, provSegItem);
@@ -90,18 +90,18 @@ namespace armarx::armem::gui::memory
         });
 
         // entityBuilder.setExpand(true);
-        workingmemoryEntityBuilder.setMakeItemFn([this](const std::string & name, const workingmemory::Entity & entity)
+        workingmemoryEntityBuilder.setMakeItemFn([this](const std::string & name, const wm::Entity & entity)
         {
             return makeItem(name, entity);
         });
-        workingmemoryEntityBuilder.setUpdateItemFn([this](const std::string&, const workingmemory::Entity & entity, QTreeWidgetItem *  entityItem)
+        workingmemoryEntityBuilder.setUpdateItemFn([this](const std::string&, const wm::Entity & entity, QTreeWidgetItem *  entityItem)
         {
             updateContainerItem(entity, entityItem);
             updateChildren(entity, entityItem);
             return true;
         });
 
-        workingmemorySnapshotBuilder.setMakeItemFn([this](const armem::Time & time, const workingmemory::EntitySnapshot & snapshot)
+        workingmemorySnapshotBuilder.setMakeItemFn([this](const armem::Time & time, const wm::EntitySnapshot & snapshot)
         {
             QTreeWidgetItem* item = makeItem(toDateTimeMilliSeconds(time), snapshot);
             item->setData(int(Columns::KEY), Qt::ItemDataRole::UserRole, QVariant(static_cast<qlonglong>(snapshot.time().toMicroSeconds())));
@@ -109,27 +109,27 @@ namespace armarx::armem::gui::memory
         });
         workingmemorySnapshotBuilder.setCompareFn([](const auto & pair, QTreeWidgetItem * item)
         {
-            const workingmemory::EntitySnapshot& snapshot = pair.second;
+            const wm::EntitySnapshot& snapshot = pair.second;
             return armarx::detail::compare(static_cast<qlonglong>(snapshot.time().toMicroSeconds()),
                                            item->data(int(Columns::KEY), Qt::ItemDataRole::UserRole).toLongLong());
         });
-        workingmemorySnapshotBuilder.setUpdateItemFn([this](const armem::Time&, const workingmemory::EntitySnapshot & snapshot, QTreeWidgetItem * snapshotItem)
+        workingmemorySnapshotBuilder.setUpdateItemFn([this](const armem::Time&, const wm::EntitySnapshot & snapshot, QTreeWidgetItem * snapshotItem)
         {
             updateContainerItem(snapshot, snapshotItem);
             updateChildren(snapshot, snapshotItem);
             return true;
         });
 
-        workingmemoryInstanceBuilder.setMakeItemFn([this](const workingmemory::EntityInstance & instance)
+        workingmemoryInstanceBuilder.setMakeItemFn([this](const wm::EntityInstance & instance)
         {
             QTreeWidgetItem* item = makeItem("", instance);
             return item;
         });
-        workingmemoryInstanceBuilder.setCompareFn([](const workingmemory::EntityInstance & lhs, QTreeWidgetItem * rhsItem)
+        workingmemoryInstanceBuilder.setCompareFn([](const wm::EntityInstance & lhs, QTreeWidgetItem * rhsItem)
         {
             return armarx::detail::compare(lhs.index(), rhsItem->text(0).toInt());
         });
-        workingmemoryInstanceBuilder.setUpdateItemFn([this](const workingmemory::EntityInstance & instance, QTreeWidgetItem * instanceItem)
+        workingmemoryInstanceBuilder.setUpdateItemFn([this](const wm::EntityInstance & instance, QTreeWidgetItem * instanceItem)
         {
             updateItemItem(instance, instanceItem);
             updateChildren(instance, instanceItem);
@@ -139,7 +139,7 @@ namespace armarx::armem::gui::memory
     }
 
 
-    void TreeWidget::update(const armem::workingmemory::Memory& memory)
+    void TreeWidget::update(const armem::wm::Memory& memory)
     {
         // Removing elements during the update can create unwanted signals triggering selection handling.
         handleSelections = false;
@@ -148,7 +148,7 @@ namespace armarx::armem::gui::memory
         emit updated();
     }
 
-    void TreeWidget::update(const std::map<std::string, const armem::workingmemory::Memory*>& memories)
+    void TreeWidget::update(const std::map<std::string, const armem::wm::Memory*>& memories)
     {
         handleSelections = false;
         updateChildren(memories, this);
@@ -181,27 +181,27 @@ namespace armarx::armem::gui::memory
             _selectedID = id;
 
             const std::string levelName = item->data(int(Columns::LEVEL), Qt::UserRole).toString().toStdString();
-            if (levelName == workingmemory::Memory().getLevelName())
+            if (levelName == wm::Memory().getLevelName())
             {
                 emit memorySelected(*_selectedID);
             }
-            else if (levelName == workingmemory::CoreSegment().getLevelName())
+            else if (levelName == wm::CoreSegment().getLevelName())
             {
                 emit coreSegmentSelected(*_selectedID);
             }
-            else if (levelName == workingmemory::ProviderSegment().getLevelName())
+            else if (levelName == wm::ProviderSegment().getLevelName())
             {
                 emit providerSegmentSelected(*_selectedID);
             }
-            else if (levelName == workingmemory::Entity().getLevelName())
+            else if (levelName == wm::Entity().getLevelName())
             {
                 emit entitySelected(*_selectedID);
             }
-            else if (levelName == workingmemory::EntitySnapshot().getLevelName())
+            else if (levelName == wm::EntitySnapshot().getLevelName())
             {
                 emit snapshotSelected(*_selectedID);
             }
-            else if (levelName == workingmemory::EntityInstance().getLevelName())
+            else if (levelName == wm::EntityInstance().getLevelName())
             {
                 emit instanceSelected(*_selectedID);
             }
@@ -212,48 +212,48 @@ namespace armarx::armem::gui::memory
     }
 
 
-    void TreeWidget::updateChildren(const armem::workingmemory::Memory& memory, QTreeWidget* tree)
+    void TreeWidget::updateChildren(const armem::wm::Memory& memory, QTreeWidget* tree)
     {
-        updateChildren(std::map<std::string, const armem::workingmemory::Memory*> {{memory.name(), &memory}}, tree);
+        updateChildren(std::map<std::string, const armem::wm::Memory*> {{memory.name(), &memory}}, tree);
     }
 
-    void TreeWidget::updateChildren(const std::map<std::string, const armem::workingmemory::Memory*>& memories, QTreeWidget* tree)
+    void TreeWidget::updateChildren(const std::map<std::string, const armem::wm::Memory*>& memories, QTreeWidget* tree)
     {
         workingmemoryBuilder.updateTree(tree, memories);
     }
 
 
-    void TreeWidget::updateChildren(const armem::workingmemory::Memory& memory, QTreeWidgetItem* memoryItem)
+    void TreeWidget::updateChildren(const armem::wm::Memory& memory, QTreeWidgetItem* memoryItem)
     {
         workingmemoryCoreSegmentBuilder.updateTree(memoryItem, memory.coreSegments());
     }
 
-    void TreeWidget::updateChildren(const armem::workingmemory::CoreSegment& coreSeg, QTreeWidgetItem* coreSegItem)
+    void TreeWidget::updateChildren(const armem::wm::CoreSegment& coreSeg, QTreeWidgetItem* coreSegItem)
     {
         workingmemoryProvSegmentBuilder.updateTree(coreSegItem, coreSeg.providerSegments());
     }
 
-    void TreeWidget::updateChildren(const armem::workingmemory::ProviderSegment& provSeg, QTreeWidgetItem* provSegItem)
+    void TreeWidget::updateChildren(const armem::wm::ProviderSegment& provSeg, QTreeWidgetItem* provSegItem)
     {
         workingmemoryEntityBuilder.updateTree(provSegItem, provSeg.entities());
     }
 
-    void TreeWidget::updateChildren(const armem::workingmemory::Entity& entity, QTreeWidgetItem* entityItem)
+    void TreeWidget::updateChildren(const armem::wm::Entity& entity, QTreeWidgetItem* entityItem)
     {
         workingmemorySnapshotBuilder.updateTree(entityItem, entity.history());
     }
 
-    void TreeWidget::updateChildren(const armem::workingmemory::EntitySnapshot& snapshot, QTreeWidgetItem* snapshotItem)
+    void TreeWidget::updateChildren(const armem::wm::EntitySnapshot& snapshot, QTreeWidgetItem* snapshotItem)
     {
         workingmemoryInstanceBuilder.updateTree(snapshotItem, snapshot.instances());
     }
 
-    void TreeWidget::updateChildren(const armem::workingmemory::EntityInstance& data, QTreeWidgetItem* dataItem)
+    void TreeWidget::updateChildren(const armem::wm::EntityInstance& data, QTreeWidgetItem* dataItem)
     {
         (void) data, (void) dataItem;
     }
 
-    QTreeWidgetItem* TreeWidget::makeItem(const std::string& key, const armem::detail::MemoryItem& memoryItem)
+    QTreeWidgetItem* TreeWidget::makeItem(const std::string& key, const armem::base::detail::MemoryItem& memoryItem)
     {
         (void) key;
         QStringList columns;
@@ -270,14 +270,14 @@ namespace armarx::armem::gui::memory
         return item;
     }
 
-    void TreeWidget::updateItemItem(const armem::detail::MemoryItem& level, QTreeWidgetItem* item)
+    void TreeWidget::updateItemItem(const armem::base::detail::MemoryItem& level, QTreeWidgetItem* item)
     {
         (void) level, (void) item;
     }
 
     template <class... T>
     void TreeWidget::updateContainerItem(
-        const armem::workingmemory::detail::MemoryContainer<T...>& container, QTreeWidgetItem* item)
+        const armem::wm::detail::MemoryContainer<T...>& container, QTreeWidgetItem* item)
     {
         updateItemItem(container, item);
         item->setText(int(Columns::SIZE), QString::number(container.size()));
@@ -285,7 +285,7 @@ namespace armarx::armem::gui::memory
 
     template <class... T>
     void TreeWidget::updateTypedContainerItem(
-        const armem::workingmemory::detail::TypedEntityContainer<T...>& container, QTreeWidgetItem* item)
+        const armem::wm::detail::TypedEntityContainer<T...>& container, QTreeWidgetItem* item)
     {
         updateContainerItem(container, item);
         std::string typeName;
diff --git a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h
index d93bed9ab..1ce801920 100644
--- a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h
+++ b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h
@@ -4,8 +4,8 @@
 
 #include <QTreeWidget>
 
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
-#include <RobotAPI/libraries/armem/core/longtermMemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/longtermmemory/Memory.h>
 
 #include <RobotAPI/libraries/armem_gui/TreeWidgetBuilder.h>
 
@@ -22,8 +22,8 @@ namespace armarx::armem::gui::memory
 
         TreeWidget();
 
-        void update(const armem::workingmemory::Memory& memory);
-        void update(const std::map<std::string, const armem::workingmemory::Memory*>& memories);
+        void update(const armem::wm::Memory& memory);
+        void update(const std::map<std::string, const armem::wm::Memory*>& memories);
 
         std::optional<MemoryID> selectedID() const;
 
@@ -56,34 +56,34 @@ namespace armarx::armem::gui::memory
         void initWidget();
         void initBuilders();
 
-        void updateChildren(const armem::workingmemory::Memory& memory, QTreeWidget* tree);
-        void updateChildren(const std::map<std::string, const armem::workingmemory::Memory*>& memories, QTreeWidget* tree);
+        void updateChildren(const armem::wm::Memory& memory, QTreeWidget* tree);
+        void updateChildren(const std::map<std::string, const armem::wm::Memory*>& memories, QTreeWidget* tree);
 
-        void updateChildren(const armem::workingmemory::Memory& memory, QTreeWidgetItem* memoryItem);
-        void updateChildren(const armem::workingmemory::CoreSegment& coreSeg, QTreeWidgetItem* coreSegItem);
-        void updateChildren(const armem::workingmemory::ProviderSegment& provSeg, QTreeWidgetItem* provSegItem);
-        void updateChildren(const armem::workingmemory::Entity& entity, QTreeWidgetItem* entityItem);
-        void updateChildren(const armem::workingmemory::EntitySnapshot& snapshot, QTreeWidgetItem* snapshotItem);
-        void updateChildren(const armem::workingmemory::EntityInstance& data, QTreeWidgetItem* parent);
+        void updateChildren(const armem::wm::Memory& memory, QTreeWidgetItem* memoryItem);
+        void updateChildren(const armem::wm::CoreSegment& coreSeg, QTreeWidgetItem* coreSegItem);
+        void updateChildren(const armem::wm::ProviderSegment& provSeg, QTreeWidgetItem* provSegItem);
+        void updateChildren(const armem::wm::Entity& entity, QTreeWidgetItem* entityItem);
+        void updateChildren(const armem::wm::EntitySnapshot& snapshot, QTreeWidgetItem* snapshotItem);
+        void updateChildren(const armem::wm::EntityInstance& data, QTreeWidgetItem* parent);
 
 
-        QTreeWidgetItem* makeItem(const std::string& key, const armem::detail::MemoryItem& container);
+        QTreeWidgetItem* makeItem(const std::string& key, const armem::base::detail::MemoryItem& container);
 
-        void updateItemItem(const armem::detail::MemoryItem& level, QTreeWidgetItem* item);
+        void updateItemItem(const armem::base::detail::MemoryItem& level, QTreeWidgetItem* item);
         template <class... T>
-        void updateContainerItem(const armem::workingmemory::detail::MemoryContainer<T...>& container, QTreeWidgetItem* item);
+        void updateContainerItem(const armem::wm::detail::MemoryContainer<T...>& container, QTreeWidgetItem* item);
         template <class... T>
-        void updateTypedContainerItem(const armem::workingmemory::detail::TypedEntityContainer<T...>& container, QTreeWidgetItem* item);
+        void updateTypedContainerItem(const armem::wm::detail::TypedEntityContainer<T...>& container, QTreeWidgetItem* item);
 
 
     private:
 
-        MapTreeWidgetBuilder<std::string, const workingmemory::Memory*> workingmemoryBuilder;
-        MapTreeWidgetBuilder<std::string, workingmemory::CoreSegment> workingmemoryCoreSegmentBuilder;
-        MapTreeWidgetBuilder<std::string, workingmemory::ProviderSegment> workingmemoryProvSegmentBuilder;
-        MapTreeWidgetBuilder<std::string, workingmemory::Entity> workingmemoryEntityBuilder;
-        MapTreeWidgetBuilder<armem::Time, workingmemory::EntitySnapshot> workingmemorySnapshotBuilder;
-        TreeWidgetBuilder<std::vector<workingmemory::EntityInstance>> workingmemoryInstanceBuilder;
+        MapTreeWidgetBuilder<std::string, const wm::Memory*> workingmemoryBuilder;
+        MapTreeWidgetBuilder<std::string, wm::CoreSegment> workingmemoryCoreSegmentBuilder;
+        MapTreeWidgetBuilder<std::string, wm::ProviderSegment> workingmemoryProvSegmentBuilder;
+        MapTreeWidgetBuilder<std::string, wm::Entity> workingmemoryEntityBuilder;
+        MapTreeWidgetBuilder<armem::Time, wm::EntitySnapshot> workingmemorySnapshotBuilder;
+        TreeWidgetBuilder<std::vector<wm::EntityInstance>> workingmemoryInstanceBuilder;
 
         std::optional<MemoryID> _selectedID;
         /// While this is false, do not handle selection updates.
diff --git a/source/RobotAPI/libraries/armem_robot_localization/TransformReader.cpp b/source/RobotAPI/libraries/armem_robot_localization/TransformReader.cpp
index 89f85100f..c3b24c489 100644
--- a/source/RobotAPI/libraries/armem_robot_localization/TransformReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_localization/TransformReader.cpp
@@ -47,9 +47,9 @@
 // this package
 #include <RobotAPI/libraries/armem/client/query/Builder.h>
 #include <RobotAPI/libraries/armem/client/query/query_fns.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 #include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h>
 #include <RobotAPI/libraries/aron/core/navigator/type/NavigatorFactory.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
@@ -128,7 +128,7 @@ namespace armarx::armem
 
     // }
 
-    std::vector<std::string> TransformReader::buildTransformChain(const armem::workingmemory::Memory& memory,
+    std::vector<std::string> TransformReader::buildTransformChain(const armem::wm::Memory& memory,
             const TransformQuery& query) const
     {
         ARMARX_DEBUG << "Building transform chain";
@@ -202,7 +202,7 @@ namespace armarx::armem
         return chain;
     }
 
-    inline Transform convertEntityToTransform(const armem::workingmemory::EntityInstance& item)
+    inline Transform convertEntityToTransform(const armem::wm::EntityInstance& item)
     {
         aron::Transform aronTransform;
         aronTransform.fromAron(item.data());
@@ -271,7 +271,7 @@ namespace armarx::armem
         return simox::math::interpolatePose(posePreIt->transform, poseNextIt->transform, t);
     }
 
-    Eigen::Affine3f TransformReader::obtainTransform(const std::string& entityName, const armem::workingmemory::ProviderSegment& agentProviderSegment, const int64_t timestamp) const
+    Eigen::Affine3f TransformReader::obtainTransform(const std::string& entityName, const armem::wm::ProviderSegment& agentProviderSegment, const int64_t timestamp) const
     {
 
         ARMARX_DEBUG << "getEntity:" + entityName;
@@ -329,7 +329,7 @@ namespace armarx::armem
     }
 
     std::vector<Eigen::Affine3f>
-    TransformReader::obtainTransforms(const armem::workingmemory::Memory& memory,
+    TransformReader::obtainTransforms(const armem::wm::Memory& memory,
                                       const std::vector<std::string>& tfChain,
                                       const std::string& agent,
                                       const std::int64_t& timestamp) const
diff --git a/source/RobotAPI/libraries/armem_robot_localization/TransformReader.h b/source/RobotAPI/libraries/armem_robot_localization/TransformReader.h
index f7f6533fb..9b0489954 100644
--- a/source/RobotAPI/libraries/armem_robot_localization/TransformReader.h
+++ b/source/RobotAPI/libraries/armem_robot_localization/TransformReader.h
@@ -64,14 +64,14 @@ namespace armarx::armem
         }
 
     private:
-        std::vector<std::string> buildTransformChain(const armem::workingmemory::Memory& memory,
+        std::vector<std::string> buildTransformChain(const armem::wm::Memory& memory,
                 const TransformQuery& query) const;
 
-        std::vector<Eigen::Affine3f> obtainTransforms(const armem::workingmemory::Memory& memory,
+        std::vector<Eigen::Affine3f> obtainTransforms(const armem::wm::Memory& memory,
                 const std::vector<std::string>& tfChain,
                 const std::string& agent, const std::int64_t& timestamp) const;
 
-        Eigen::Affine3f obtainTransform(const std::string& entityName, const armem::workingmemory::ProviderSegment& agentProviderSegment, int64_t timestamp) const;
+        Eigen::Affine3f obtainTransform(const std::string& entityName, const armem::wm::ProviderSegment& agentProviderSegment, int64_t timestamp) const;
 
 
         armem::client::Reader memoryReader;
diff --git a/source/RobotAPI/libraries/armem_robot_localization/TransformWriter.cpp b/source/RobotAPI/libraries/armem_robot_localization/TransformWriter.cpp
index d805dc9d8..1ac8ea58b 100644
--- a/source/RobotAPI/libraries/armem_robot_localization/TransformWriter.cpp
+++ b/source/RobotAPI/libraries/armem_robot_localization/TransformWriter.cpp
@@ -37,9 +37,9 @@
 
 #include <RobotAPI/libraries/armem/client/query/Builder.h>
 #include <RobotAPI/libraries/armem/client/query/query_fns.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ice_conversions.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/Memory.h>
-#include <RobotAPI/libraries/armem/core/workingMemory/ProviderSegment.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h>
 #include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h>
 #include <RobotAPI/libraries/aron/core/navigator/type/NavigatorFactory.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
-- 
GitLab