diff --git a/source/RobotAPI/libraries/armem/server/CMakeLists.txt b/source/RobotAPI/libraries/armem/server/CMakeLists.txt
index 45b4dbc7222bf4483597314b7cc7c587c134a84b..782e86c28c7355a79ed47ca483ac9deb538782d0 100644
--- a/source/RobotAPI/libraries/armem/server/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem/server/CMakeLists.txt
@@ -47,8 +47,8 @@ set(LIB_FILES
 
     ltm/base/extractor/Extractor.cpp
     ltm/base/extractor/imageExtractor/ImageExtractor.cpp
-    ltm/base/extractor/noExtractor/NoExtractor.cpp
 
+    ltm/base/converter/Converter.cpp
     ltm/base/converter/dict/Converter.cpp
     ltm/base/converter/dict/json/JsonConverter.cpp
     ltm/base/converter/dict/bson/BsonConverter.cpp
@@ -119,8 +119,8 @@ set(LIB_HEADERS
 
     ltm/base/extractor/Extractor.h
     ltm/base/extractor/imageExtractor/ImageExtractor.h
-    ltm/base/extractor/noExtractor/NoExtractor.h
 
+    ltm/base/converter/Converter.h
     ltm/base/converter/dict/Converter.h
     ltm/base/converter/dict/json/JsonConverter.h
     ltm/base/converter/dict/bson/BsonConverter.h
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..fd719807eb069bcf62db065ed42bb649c38d225d
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp
@@ -0,0 +1 @@
+#include "Converter.h"
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h
new file mode 100644
index 0000000000000000000000000000000000000000..1e01564f3289a39018862aa24b379e4d2e16ecba
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h
@@ -0,0 +1,32 @@
+#pragma once
+
+// STD/STL
+#include <memory>
+
+// ArmarX
+#include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
+
+namespace armarx::armem::server::ltm
+{
+    class Converter
+    {
+    public:
+        enum class ConverterType
+        {
+            Str,
+            Binary
+        };
+
+        Converter(const ConverterType t, const std::string& s):
+            type(t),
+            suffix(s)
+        {}
+        virtual ~Converter() = default;
+
+        virtual std::vector<unsigned char> convert(const aron::data::VariantPtr& data) = 0;
+        virtual aron::data::VariantPtr convert(const std::vector<unsigned char>& data) = 0;
+
+        const ConverterType type;
+        const std::string suffix;
+    };
+}
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp
index fd719807eb069bcf62db065ed42bb649c38d225d..ea89e7dbc8e04fb69cea10558d0777237730872d 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp
@@ -1 +1,18 @@
 #include "Converter.h"
+
+namespace armarx::armem::server::ltm
+{
+
+    std::vector<unsigned char> DictConverter::convert(const aron::data::VariantPtr& data)
+    {
+        auto d = aron::data::Dict::DynamicCastAndCheck(data);
+        return _convert(d);
+    }
+
+    aron::data::VariantPtr DictConverter::convert(const std::vector<unsigned char>& data)
+    {
+        auto d = _convert(data);
+        return d;
+    }
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h
index 776b7c05ca15ba98c7350977c1fb4762e8e0a949..d2965ce0e61f74ff77458e6f770c20b928976f10 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h
@@ -3,33 +3,26 @@
 // STD/STL
 #include <memory>
 
+// BaseClass
+#include "../Converter.h"
+
 // ArmarX
 #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
 
 namespace armarx::armem::server::ltm
 {
-    class DictConverter;
-    using DictConverterPtr = std::shared_ptr<DictConverter>;
-
-    class DictConverter
+    class DictConverter : public Converter
     {
     public:
-        enum class ConverterType
-        {
-            Str,
-            Binary
-        };
+        using Converter::Converter;
 
-        DictConverter(const ConverterType t, const std::string& s):
-            type(t),
-            suffix(s)
-        {}
         virtual ~DictConverter() = default;
 
-        virtual std::vector<unsigned char> convert(const aron::data::DictPtr& data) = 0;
-        virtual aron::data::DictPtr convert(const std::vector<unsigned char>& data) = 0;
+        std::vector<unsigned char> convert(const aron::data::VariantPtr& data) final;
+        aron::data::VariantPtr convert(const std::vector<unsigned char>& data) final;
 
-        const ConverterType type;
-        const std::string suffix;
+    protected:
+        virtual std::vector<unsigned char> _convert(const aron::data::DictPtr& data) = 0;
+        virtual aron::data::DictPtr _convert(const std::vector<unsigned char>& data) = 0;
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp
index e78913abd351657aaa73c852f7e336acd1c3c7f1..f183f002f53d586e0529e2e5b56372737c88cba3 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp
@@ -10,7 +10,7 @@ namespace armarx::armem::server::ltm::converter::dict
     namespace bsoncxxbuilder = bsoncxx::builder::stream;
     namespace bsoncxxdoc = bsoncxx::document;
 
-    std::vector<unsigned char> BsonConverter::convert(const aron::data::DictPtr& data)
+    std::vector<unsigned char> BsonConverter::_convert(const aron::data::DictPtr& data)
     {
         std::vector<unsigned char> jsonVec = jsonConverter.convert(data);
         std::string json(jsonVec.begin(), jsonVec.end());
@@ -24,12 +24,13 @@ namespace armarx::armem::server::ltm::converter::dict
         return bson;
     }
 
-    aron::data::DictPtr BsonConverter::convert(const std::vector<unsigned char>& data)
+    aron::data::DictPtr BsonConverter::_convert(const std::vector<unsigned char>& data)
     {
         bsoncxx::document::view view(data.data(), data.size());
         nlohmann::json json = bsoncxx::to_json(view);
         std::string str = json.dump(2);
         std::vector<unsigned char> jsonVec(str.begin(), str.end());
-        return jsonConverter.convert(jsonVec);
+        auto v = jsonConverter.convert(jsonVec);
+        return aron::data::Dict::DynamicCast(v);
     }
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h
index 0d6f858b0605edbe0496b279928b6cea6370e21c..e0021111043acc2141575574b084d6169524c551 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h
@@ -18,8 +18,9 @@ namespace armarx::armem::server::ltm::converter::dict
             DictConverter(ConverterType::Binary, ".bson")
         {}
 
-        virtual std::vector<unsigned char> convert(const aron::data::DictPtr& data) override;
-        virtual aron::data::DictPtr convert(const std::vector<unsigned char>& data) override;
+    protected:
+        std::vector<unsigned char> _convert(const aron::data::DictPtr& data) final;
+        aron::data::DictPtr _convert(const std::vector<unsigned char>& data) final;
 
     private:
         JsonConverter jsonConverter;
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp
index 379caf9b76c45a997e7700a039290abe08726fd7..1847b87529851b0c41cc0a94f957f55c38306189 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp
@@ -4,14 +4,14 @@
 
 namespace armarx::armem::server::ltm::converter::dict
 {
-    std::vector<unsigned char> JsonConverter::convert(const aron::data::DictPtr& data)
+    std::vector<unsigned char> JsonConverter::_convert(const aron::data::DictPtr& data)
     {
         nlohmann::json j = aron::converter::AronNlohmannJSONConverter::ConvertToNlohmannJSON(data);
         auto str = j.dump(2);
         return std::vector<unsigned char>(str.begin(), str.end());
     }
 
-    aron::data::DictPtr JsonConverter::convert(const std::vector<unsigned char>& data)
+    aron::data::DictPtr JsonConverter::_convert(const std::vector<unsigned char>& data)
     {
         std::string str(data.begin(), data.end());
         nlohmann::json j = nlohmann::json::parse(str);
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h
index fad44583f452740684724e45e47f74138c63697c..8ef4cbc279c0c4034a5d8d874f42bae445d9a8b6 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h
@@ -8,9 +8,6 @@
 
 namespace armarx::armem::server::ltm::converter::dict
 {
-    class JsonConverter;
-    using JsonConverterPtr = std::shared_ptr<JsonConverter>;
-
     class JsonConverter : public DictConverter
     {
     public:
@@ -18,7 +15,8 @@ namespace armarx::armem::server::ltm::converter::dict
             DictConverter(ConverterType::Str, ".json")
         {}
 
-        virtual std::vector<unsigned char> convert(const aron::data::DictPtr& data) override;
-        virtual aron::data::DictPtr convert(const std::vector<unsigned char>& data) override;
+    protected:
+        std::vector<unsigned char> _convert(const aron::data::DictPtr& data) final;
+        aron::data::DictPtr _convert(const std::vector<unsigned char>& data) final;
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp
index fd719807eb069bcf62db065ed42bb649c38d225d..a36db667d18750b64847ceed420a2b7d7e5480b3 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp
@@ -1 +1,18 @@
 #include "Converter.h"
+
+namespace armarx::armem::server::ltm
+{
+
+    std::vector<unsigned char> ImageConverter::convert(const aron::data::VariantPtr& data)
+    {
+        auto d = aron::data::NDArray::DynamicCastAndCheck(data);
+        return _convert(d);
+    }
+
+    aron::data::VariantPtr ImageConverter::convert(const std::vector<unsigned char>& data)
+    {
+        auto d = _convert(data);
+        return d;
+    }
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h
index 740757ef84d98aa38ab1c2d65ab9e881bc215090..0dd01ad8466143e040f013c8380e2600ed3e1c5e 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h
@@ -3,33 +3,26 @@
 // STD/STL
 #include <memory>
 
+// BaseClass
+#include "../Converter.h"
+
 // ArmarX
 #include <RobotAPI/libraries/aron/core/data/variant/complex/NDArray.h>
 
 namespace armarx::armem::server::ltm
 {
-    class ImageConverter;
-    using ImageConverterPtr = std::shared_ptr<ImageConverter>;
-
-    class ImageConverter
+    class ImageConverter : public Converter
     {
     public:
-        enum class ConverterType
-        {
-            Str,
-            Binary
-        };
+        using Converter::Converter;
 
-        ImageConverter(const ConverterType t, const std::string& s):
-            type(t),
-            suffix(s)
-        {}
         virtual ~ImageConverter() = default;
 
-        virtual std::vector<unsigned char> convert(const aron::data::NDArrayPtr& data) = 0;
-        virtual aron::data::NDArrayPtr convert(const std::vector<unsigned char>& data) = 0;
+        std::vector<unsigned char> convert(const aron::data::VariantPtr& data) final;
+        aron::data::VariantPtr convert(const std::vector<unsigned char>& data) final;
 
-        const ConverterType type;
-        const std::string suffix;
+    protected:
+        virtual std::vector<unsigned char> _convert(const aron::data::NDArrayPtr& data) = 0;
+        virtual aron::data::NDArrayPtr _convert(const std::vector<unsigned char>& data) = 0;
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp
index 3658def03e62aff1fed98e21272c82fe31636ab5..f2ab4d8db1f0baaf2a2c6524e97e9f17054b88cc 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp
@@ -10,7 +10,7 @@
 
 namespace armarx::armem::server::ltm::converter::image
 {
-    std::vector<unsigned char> PngConverter::convert(const aron::data::NDArrayPtr& data)
+    std::vector<unsigned char> PngConverter::_convert(const aron::data::NDArrayPtr& data)
     {
         ARMARX_CHECK_NOT_NULL(data);
 
@@ -20,10 +20,9 @@ namespace armarx::armem::server::ltm::converter::image
         return buffer;
     }
 
-    aron::data::NDArrayPtr PngConverter::convert(const std::vector<unsigned char>& data)
+    aron::data::NDArrayPtr PngConverter::_convert(const std::vector<unsigned char>& data)
     {
         cv::Mat img = cv::imdecode(data, cv::IMREAD_COLOR);
-        auto aron = aron::converter::AronOpenCVConverter::ConvertFromMat(img);
-        return aron;
+        return aron::converter::AronOpenCVConverter::ConvertFromMat(img);
     }
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h
index 13581518a38a05a4ff1a2caaa8ddf7e25a8383af..9aa35b6ae2834ec7a57a099c5af1c559a3419d99 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h
@@ -15,7 +15,8 @@ namespace armarx::armem::server::ltm::converter::image
             ImageConverter(ConverterType::Str, ".png")
         {}
 
-        virtual std::vector<unsigned char> convert(const aron::data::NDArrayPtr& data) override;
-        virtual aron::data::NDArrayPtr convert(const std::vector<unsigned char>& data) override;
+    protected:
+        std::vector<unsigned char> _convert(const aron::data::NDArrayPtr& data) final;
+        aron::data::NDArrayPtr _convert(const std::vector<unsigned char>& data) final;
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h b/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h
index 29f57896b60082c871de07b9cf07efa8e7b57db0..025664c2f50ce4f23ead1396646b4c6ddb2e5ab6 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h
@@ -13,49 +13,56 @@ namespace armarx::armem::server::ltm
 
     public:
         BufferedMemoryBase() :
-            Base()
+            BufferedMemoryBase({})
         {
         }
 
         BufferedMemoryBase(const MemoryID& id) :
-            Base(id),
-            buffer(id)
+            Base(id)
         {
+            buffer = std::make_shared<armem::wm::Memory>(id);
+            to_store = std::make_shared<armem::wm::Memory>(id);
         }
 
         virtual ~BufferedMemoryBase() = default;
 
         armem::wm::Memory getBuffer() const
         {
-            return buffer;
+            std::lock_guard l(bufferMutex);
+            return *buffer;
         }
 
         void directlyStore(const armem::wm::Memory& memory)
         {
             TIMING_START(LTM_Memory_DirectlyStore);
-            if (!this->pipeline.memFreqFilter->accept(memory))
+            for (auto& f : this->memoryFilters)
             {
-                ARMARX_WARNING << deactivateSpam() << "Ignoring to put a Memory into the LTM because it got filtered.";
-                return;
-            }
-            else
-            {
-                _directlyStore(memory);
+                if (!f.accept(memory))
+                {
+                    ARMARX_WARNING << deactivateSpam() << "Ignoring to put a Memory into the LTM because it got filtered.";
+                    return;
+                }
             }
+            _directlyStore(memory);
             TIMING_END(LTM_Memory_DirectlyStore);
         }
 
         void storeBuffer()
         {
-            std::lock_guard l(bufferMutex);
-            if (buffer.empty())
+            std::lock_guard l(storeMutex);
+            {
+                std::lock_guard l(bufferMutex);
+                to_store = buffer;
+                buffer = std::make_shared<armem::wm::Memory>(this->id());
+            }
+
+            if (to_store->empty())
             {
                 ARMARX_INFO << deactivateSpam() << "Cannot store an empty buffer. Ignoring.";
                 return;
             }
 
-            this->directlyStore(buffer);
-            buffer.clear();
+            this->directlyStore(*to_store);
         }
 
         virtual void createPropertyDefinitions(PropertyDefinitionsPtr& defs, const std::string& prefix) override
@@ -71,7 +78,9 @@ namespace armarx::armem::server::ltm
         void _store(const armem::wm::Memory& memory) override
         {
             std::lock_guard l(bufferMutex);
-            buffer.append(memory);
+            buffer->append(memory);
+
+            // create task if not already exists
             if (!task)
             {
                 int waitingTimeMs = 1000.f / storeFrequency;
@@ -81,12 +90,12 @@ namespace armarx::armem::server::ltm
         }
 
     protected:
-
-        /// Internal memory for data consolidated from wm to ltm (buffer)
+        /// Internal memory for data consolidated from wm to ltm (double-buffer)
         /// The to-put-to-ltm buffer (contains data in plain text)
-        /// This buffer may still be filtered.
+        /// This buffer may still be filtered (e.g. snapshot filters).
         /// This means that it is not guaranteed that all data in the buffer will be stored in the ltm
-        armem::wm::Memory buffer;
+        std::shared_ptr<armem::wm::Memory> buffer;
+        std::shared_ptr<armem::wm::Memory> to_store;
 
         /// The periodic'task to store the content of the buffer to the ltm
         typename armarx::PeriodicTask<BufferedMemoryBase>::pointer_type task = nullptr;
@@ -95,7 +104,8 @@ namespace armarx::armem::server::ltm
         float storeFrequency = 10;
 
         /// a mutex to access the buffer object
-        std::mutex bufferMutex;
+        mutable std::mutex bufferMutex;
+        mutable std::mutex storeMutex;
 
     };
 } // namespace armarx::armem::server::ltm
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h
index 6da8399303d0d1bda7681ec5e88c9e79625595c9..10647ccbe4708a09087673f172eb55ed67cdc68d 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h
@@ -9,9 +9,6 @@
 
 namespace armarx::armem::server::ltm
 {
-    class Extractor;
-    typedef std::shared_ptr<Extractor> ExtractorPtr;
-
     class Extractor
     {
     public:
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h
index 901bebb8b87f16bb3fc0c425343e1b89d2f9b2be..08161d3fc8b81ccab7b927691686d59219454a07 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h
@@ -7,9 +7,6 @@
 
 namespace armarx::armem::server::ltm::extractor
 {
-    class ImageExtractor;
-    typedef std::shared_ptr<ImageExtractor> ImageExtractorPtr;
-
     class ImageExtractorVisitor : public aron::data::RecursiveVariantVisitor
     {
     public:
@@ -26,8 +23,5 @@ namespace armarx::armem::server::ltm::extractor
 
         virtual Extraction extract(aron::data::DictPtr& data) override;
         virtual aron::data::DictPtr merge(Extraction& encoding) override;
-
-    public:
-        bool enabled;
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp
deleted file mode 100644
index 58f36e588390296b73d0899520afc78c02e61b3a..0000000000000000000000000000000000000000
--- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "NoExtractor.h"
-
-
-namespace armarx::armem::server::ltm::extractor
-{
-    Extractor::Extraction NoExtractor::extract(aron::data::DictPtr& data)
-    {
-        Extraction encoding;
-        encoding.dataWithoutExtraction = data;
-        return encoding;
-    }
-
-    aron::data::DictPtr NoExtractor::merge(Extraction& encoding)
-    {
-        return encoding.dataWithoutExtraction;
-    }
-}
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h
deleted file mode 100644
index fdcc6668471815f8a8c645e19a002adb60275beb..0000000000000000000000000000000000000000
--- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-// Base Class
-#include "../Extractor.h"
-
-namespace armarx::armem::server::ltm::extractor
-{
-    class NoExtractor;
-    typedef std::shared_ptr<NoExtractor> NoExtractorPtr;
-
-    class NoExtractor : public Extractor
-    {
-    public:
-        NoExtractor() = default;
-
-        virtual Extraction extract(aron::data::DictPtr& data) override;
-        virtual aron::data::DictPtr merge(Extraction& encoding) override;
-    };
-}
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h b/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h
index f5b068600ac0bb1a89215d81861c2a7a0e10bc6f..6d64ca98c42ac2a014c6bff41f8d73ca927682c2 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h
@@ -9,12 +9,6 @@
 
 namespace armarx::armem::server::ltm
 {
-    class SnapshotFilter;
-    typedef std::shared_ptr<SnapshotFilter> SnapshotFilterPtr;
-
-    class MemoryFilter;
-    typedef std::shared_ptr<MemoryFilter> MemoryFilterPtr;
-
     class MemoryFilter
     {
     public:
diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h b/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h
index 2da5ea95712598ec7b78e7ca0342063473a89bf8..100ccf625e5d962bef40b73367145bf056d67ec6 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h
@@ -5,12 +5,6 @@
 
 namespace armarx::armem::server::ltm::filter
 {
-    class SnapshotFrequencyFilter;
-    typedef std::shared_ptr<SnapshotFrequencyFilter> SnapshotFrequencyFilterPtr;
-
-    class MemoryFrequencyFilter;
-    typedef std::shared_ptr<MemoryFrequencyFilter> MemoryFrequencyFilterPtr;
-
     class MemoryFrequencyFilter :
             public MemoryFilter
     {
@@ -35,9 +29,9 @@ namespace armarx::armem::server::ltm::filter
         virtual bool accept(const armem::wm::EntitySnapshot& e) override;
 
     public:
-        int waitingTimeInMs = 1000;
+        int waitingTimeInMs = -1;
 
     private:
-        std::unordered_map<MemoryID, long> timestampLastCommitInMs;
+        std::map<MemoryID, long> timestampLastCommitInMs;
     };
 }