diff --git a/source/RobotAPI/libraries/armem/core/MemoryID_operators.cpp b/source/RobotAPI/libraries/armem/core/MemoryID_operators.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8a1e8aa17bf66356061696eee972e587eef96e61
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/core/MemoryID_operators.cpp
@@ -0,0 +1,26 @@
+#include "MemoryID_operators.h"
+
+#include "MemoryID.h"
+
+
+std::ostream& armarx::armem::operator<<(std::ostream& os, const std::vector<MemoryID>& rhs)
+{
+    os << "std::vector<MemoryID> with " << rhs.size() << " entries:";
+    for (size_t i = 0; i < rhs.size(); ++i)
+    {
+        os << "\n\t[" << i << "] " << rhs[i];
+    }
+    return os;
+}
+
+
+bool armarx::armem::compareTimestamp(const MemoryID& lhs, const MemoryID& rhs)
+{
+    return lhs.timestamp < rhs.timestamp;
+}
+
+
+bool armarx::armem::compareTimestampDecreasing(const MemoryID& lhs, const MemoryID& rhs)
+{
+    return lhs.timestamp > rhs.timestamp;
+}
diff --git a/source/RobotAPI/libraries/armem/core/MemoryID_operators.h b/source/RobotAPI/libraries/armem/core/MemoryID_operators.h
new file mode 100644
index 0000000000000000000000000000000000000000..7508c81e8ce2245e3b6924f7a706b0eff4390e7e
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/core/MemoryID_operators.h
@@ -0,0 +1,22 @@
+#pragma once
+
+// #include "MemoryID.h"
+
+#include <vector>
+#include <ostream>
+
+
+namespace armarx::armem
+{
+    class MemoryID;
+
+    std::ostream& operator<<(std::ostream& os, const std::vector<MemoryID>& rhs);
+
+    /// lhs.timestamp < rhs.timstamp
+    bool compareTimestamp(const MemoryID& lhs, const MemoryID& rhs);
+    /// lhs.timestamp > rhs.timstamp
+    bool compareTimestampDecreasing(const MemoryID& lhs, const MemoryID& rhs);
+
+}
+
+