diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
index 2249bdf242a197d1bff3be840d846f58a2487568..8865301a7396ee28d6c6ed99ea6a1cc2c34e189a 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
@@ -188,6 +188,9 @@ namespace armarx::armem::server::robot_state
 
             startRobotUnitStream();
         }
+
+        //load from LTM
+        this->reloadFromLTM();
     }
 
     void
diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
index 4aee9800a61ce9862b714d0ba3df58b11b08e32d..9391ae0e514e97559aead205c598aa2b87483b24 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
@@ -381,6 +381,16 @@ namespace armarx::armem::server
     }
 
     // LTM LOADING FROM LTM
+    armem::CommitResult 
+    MemoryToIceAdapter::reloadFromLTM()
+    {
+        ARMARX_INFO << "Reloading of data from LTM into WM triggered";
+        armarx::armem::wm::Memory mem = this->longtermMemory->loadAllAndResolve();
+        auto com = armem::toCommit(mem);
+        auto res = this->commit(com);
+        
+        return res;
+    }
 
     // LTM STORING AND RECORDING
     dto::DirectlyStoreResult
diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
index 0ae95a4207d86842d1b11e82cd97af6030147401..2fb61e6f3ad9c494b99a79ecc106c5f497b18e79 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
@@ -47,6 +47,7 @@ namespace armarx::armem::server
         armem::structure::data::GetServerStructureResult getServerStructure();
 
         // LTM LOADING AND REPLAYING
+        armem::CommitResult reloadFromLTM();
 
         // LTM STORING AND RECORDING
         dto::DirectlyStoreResult directlyStore(const dto::DirectlyStoreInput& directlStoreInput);
diff --git a/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp b/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp
index bb2fd2ceb33dbc846f2d1eb5761008766fed4f78..516e15c048de2f25ea969300544fccf66819d084 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp
@@ -99,10 +99,14 @@ namespace armarx::armem::server::ltm
         }
         else
         {
-            ARMARX_WARNING << "Could not load the core segments of LTM " << id().str() << " as the path " << getFullPath().string() << " does not exist.";
+            ARMARX_WARNING << "Could not load the core segments of LTM " 
+                           << id().str() 
+                           << " as the path " 
+                           << getFullPath().string() 
+                           << " does not exist.";
         }
 
-        ARMARX_INFO << "All CoreSegments handeled";
+        ARMARX_DEBUG << "All CoreSegments handeled";
 
         return true;
     }
@@ -176,8 +180,6 @@ namespace armarx::armem::server::ltm
 
         m.id() = id().getMemoryID().cleanID();
 
-        ARMARX_INFO << VAROUT(id());
-
         forEachCoreSegment(
             [&m](auto& x)
             {
@@ -192,6 +194,8 @@ namespace armarx::armem::server::ltm
     {
         std::lock_guard l(ltm_mutex); // we cannot load a memory multiple times simultaneously
 
+        ARMARX_DEBUG << VAROUT(fullPathExists());
+
         if (/*(connected() && collectionExists()) ||*/ fullPathExists())
         {
             m.forEachCoreSegment(
@@ -205,6 +209,9 @@ namespace armarx::armem::server::ltm
                                   processors);
                     c.resolve(e);
                 });
+        } else {
+            ARMARX_WARNING << "You are trying to resolve an LTM from a path that does not exist: " 
+                           << getFullPath();
         }
     }
 
@@ -254,6 +261,17 @@ namespace armarx::armem::server::ltm
         //CachedBase::addToCache(memory);
     }
 
+    void
+    Memory::_loadOnStartup(){
+        try{
+            armem::wm::Memory memory = this->loadAllAndResolve();
+            ARMARX_INFO << "Loading LTM from " << this->p.export_path << "/" << this->p.export_name << " on startup successful.";
+        }
+        catch(...){
+            ARMARX_INFO << "Could not load memory " << this->name() << " on startup.";
+        }
+    }
+
     void
     Memory::getAndSaveStatistics()
     {
diff --git a/source/RobotAPI/libraries/armem/server/ltm/Memory.h b/source/RobotAPI/libraries/armem/server/ltm/Memory.h
index 05d04551d683cb3fb3fb773ca97ebb6cee8c3b6e..c7a7008f8000169b396a0944efe3a1396fce0d81 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/Memory.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/Memory.h
@@ -59,6 +59,7 @@ namespace armarx::armem::server::ltm
         void _resolve(armem::wm::Memory&) final;
         void _store(const armem::wm::Memory&) final;
         void _directlyStore(const armem::wm::Memory&) final;
+        void _loadOnStartup() final;
 
     private:
         std::time_t current_date;
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h b/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
index e085590fe495449d9f5b1893ce6eb5f6e6f87662..2b1dbb479199466cf091f78afaab403ebf2f55d3 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
@@ -52,10 +52,10 @@ namespace armarx::armem::server::ltm::detail
         configure()
         {
             bool en = p.enabled_on_startup;
-            ARMARX_INFO << VAROUT(p.import_name);
-            ARMARX_INFO << VAROUT(p.import_path);
             ARMARX_INFO << VAROUT(p.configuration_on_startup);
             ARMARX_INFO << VAROUT(p.export_name);
+            ARMARX_INFO << VAROUT(p.export_path);
+
             this->setExportName(p.export_name);
 
             try
@@ -77,12 +77,7 @@ namespace armarx::armem::server::ltm::detail
             {
                 this->startRecording();
             }
-
-            std::string importPath = p.import_path;
-
-            if (importPath.length() > 0){
-                this->loadOnStartup();
-            }
+            
         }
 
         /// enable this LTM
@@ -211,8 +206,6 @@ namespace armarx::armem::server::ltm::detail
             defs->optional(p.enabled_on_startup, prefix + "enabled");
             defs->optional(p.configuration_on_startup, prefix + "configuration");
             defs->optional(p.export_name, prefix + "exportName");
-            defs->optional(p.import_name, prefix + "importName");
-            defs->optional(p.import_path, prefix + "importPath");
         }
 
         /// enable/disable
@@ -280,16 +273,12 @@ namespace armarx::armem::server::ltm::detail
             return "LT-Memory";
         }
 
-        void loadOnStartup(){
-            ARMARX_INFO << "Loading on startup from " << p.import_path << "/" << p.import_name;
-            try{
-                this->loadAllAndResolve();
-            }
-            catch(...){
-                ARMARX_INFO << "Could not load memory " << this->name() << " on startup";
-            }
+        void
+        loadOnStartup(){
+            _loadOnStartup();
         }
 
+
     protected:
         /// configuration
         virtual void
@@ -316,6 +305,7 @@ namespace armarx::armem::server::ltm::detail
         virtual void _resolve(armem::wm::Memory& memory) = 0;
         virtual void _store(const armem::wm::Memory& memory) = 0;
         virtual void _directlyStore(const armem::wm::Memory& memory) = 0;
+        virtual void _loadOnStartup() = 0;
 
     public:
         // stuff for scenario parameters
@@ -327,8 +317,6 @@ namespace armarx::armem::server::ltm::detail
                 "\"PngConverter\": {}, \"ExrConverter\": {}}"; //record with 20 fps as standard
             std::string export_name = "MemoryExport";
             std::string export_path = "/tmp/ltm";
-            std::string import_path = "/tmp/ltm";
-            std::string import_name = "MemoryExport";
         } p;
 
     protected:
@@ -336,6 +324,6 @@ namespace armarx::armem::server::ltm::detail
 
         mutable Statistics statistics;
 
-        std::atomic_bool enabled = false;
+        std::atomic_bool enabled = true;
     };
 } // namespace armarx::armem::server::ltm::detail
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp
index 19bfcd18bdb28870df2a9e69b1d0c74e387e07ba..480f04cb0a0a188e833007d6c9a0c6d13418d2f7 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp
@@ -39,20 +39,13 @@ namespace armarx::armem::server::ltm::detail::mixin
         std::filesystem::path current_base_path = n;
         current_base_path.append(dateString);
 
-        //inform user about change:
-        ARMARX_DEBUG << "Changed memory base path to include current date of "
-                    << dateString
-                    << " to "
-                    << this->getMemoryBasePath()
-                       ;
-
         return current_base_path;
     }
 
     void
     DiskMemoryItemMixin::setMixinExportName(const std::string& n)
     {
-        ARMARX_INFO << "Currently setting export name to: " << n;
+        ARMARX_DEBUG << "Currently setting export name to: " << n;
         exportName = n;
     }
 
@@ -81,7 +74,7 @@ namespace armarx::armem::server::ltm::detail::mixin
         } else {
             std::filesystem::path newPath;
             newPath.assign(memoryBasePathString);
-            return this->addDateToMemoryBasePath(newPath);
+            return newPath;
         }
     }
 
@@ -89,11 +82,17 @@ namespace armarx::armem::server::ltm::detail::mixin
     DiskMemoryItemMixin::getFullPath() const
     {
         auto p = getMemoryBasePath() / exportName;
+        //p = this->addDateToMemoryBasePath(p);
         //ARMARX_INFO << VAROUT(_id);
         //ARMARX_INFO << VAROUT(_id.cleanID());
         auto cleanID = _id.cleanID(); //somehow, the iDs are jumbled when loading the LTM from disk, this solves it for now
 
-        return util::fs::toPath(p, cleanID);
+        auto fullPath = util::fs::toPath(p, cleanID);
+
+        //inform user about change:
+        ARMARX_DEBUG << "Full path is " << fullPath;
+
+        return fullPath;
     }
 
     bool
diff --git a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
index 1c039d569d1dc5007f72e37ca6a69e200ab07699..456d46dcf547004d64df538b851273136481b7e5 100644
--- a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
+++ b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
@@ -174,4 +174,11 @@ namespace armarx::armem::server::plugins
         return getAvailableEngines();
     }
 
+    armem::CommitResult
+    ReadWritePluginUser::reloadFromLTM()
+    {
+        iceAdapter().reloadFromLTM();
+        return armem::CommitResult();
+    }
+
 } // namespace armarx::armem::server::plugins
diff --git a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h
index 89dcb3239cc6a62275dbd744732f4a262474d447..289db221609ee4f157126a3fb898df00fd78f58f 100644
--- a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h
+++ b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h
@@ -87,6 +87,9 @@ namespace armarx::armem::server::plugins
         virtual armem::prediction::data::EngineSupportMap
         getAvailableEngines(const ::Ice::Current&) override;
 
+        //test
+        armem::CommitResult reloadFromLTM();
+
     public:
         Plugin& memoryServerPlugin();