diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
index 8b3d0ee2c00d8dad8c40bfbecb67b53bb1606b50..4c4e50c920d87273d701378befd982823e2f00ea 100644
--- a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
@@ -53,19 +53,11 @@ namespace armarx::armem::base
         {
         }
 
-        /*
-        CoreSegmentBase(const CoreSegmentBase& other) :
-            Base(other),
-            AronTyped(other)
-        {
-        }
+        CoreSegmentBase(const CoreSegmentBase& other) = default;
+        CoreSegmentBase(CoreSegmentBase&& other) = default;
+        CoreSegmentBase& operator=(const CoreSegmentBase& other) = default;
+        CoreSegmentBase& operator=(CoreSegmentBase&& other) = default;
 
-        CoreSegmentBase& operator=(const CoreSegmentBase& other)
-        {
-            other._copySelf(*this);
-            return *this;
-        }
-        */
 
         inline const std::string& name() const
         {
diff --git a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
index 5e29186c17cfede91af9de96e9c9dd4089382406..81be753a74ea9887ce11b7b93b364993679caf23 100644
--- a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
@@ -53,20 +53,10 @@ namespace armarx::armem::base
         {
         }
 
-        /*
-        ProviderSegmentBase(const ProviderSegmentBase& other) :
-            Base(other),
-            AronTyped(other)
-        {
-        }
-
-
-        ProviderSegmentBase& operator=(const ProviderSegmentBase& other)
-        {
-            other._copySelf(*this);
-            return *this;
-        }
-        */
+        ProviderSegmentBase(const ProviderSegmentBase& other) = default;
+        ProviderSegmentBase(ProviderSegmentBase&& other) = default;
+        ProviderSegmentBase& operator=(const ProviderSegmentBase& other) = default;
+        ProviderSegmentBase& operator=(ProviderSegmentBase&& other) = default;
 
 
         inline const std::string& name() const
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
index d98f3a339835faf7066c2f1f3d5a3c8da6251f3a..6a26be9c7915a54b081e5d03b4f67cb6ae9eeaee 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
@@ -8,18 +8,6 @@
 namespace armarx::armem::d_ltm
 {
 
-    CoreSegment::CoreSegment(const CoreSegment& other) :
-        Base(other),
-        path(other.path)
-    {
-    }
-
-    CoreSegment& CoreSegment::operator=(const CoreSegment& other)
-    {
-        other._copySelf(*this);
-        return *this;
-    }
-
     std::filesystem::path CoreSegment::_fullPath() const
     {
         if (path)
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h
index 896be97761041fb45ef29f00b5c1f64e29581051..76bb297e76d268ce8517449686ffae1cdb3ed2cd 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.h
@@ -22,9 +22,8 @@ namespace armarx::armem::d_ltm
     public:
 
         using Base::CoreSegmentBase;
+        using Base::operator=;
 
-        CoreSegment(const CoreSegment& other);
-        CoreSegment& operator=(const CoreSegment& other);
 
         // Conversion
         wm::CoreSegment convert() const;
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
index 04d906cca6fd8429e848662ae8685d9da19e7056..2d5ed3d4a588827137b33e69ecaec3be1a4c31fc 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
@@ -7,19 +7,6 @@
 
 namespace armarx::armem::d_ltm
 {
-
-    ProviderSegment::ProviderSegment(const ProviderSegment& other) :
-        Base(other),
-        path(other.path)
-    {
-    }
-
-    ProviderSegment& ProviderSegment::operator=(const ProviderSegment& other)
-    {
-        other._copySelf(*this);
-        return *this;
-    }
-
     std::filesystem::path ProviderSegment::_fullPath() const
     {
         if (path)
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h
index 0be4a70c1acbfa81492ef279189f4b7bac2165b7..8ad96ea0630af0d5aba8b7270fe229c235c2a010 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.h
@@ -22,9 +22,8 @@ namespace armarx::armem::d_ltm
     public:
 
         using Base::ProviderSegmentBase;
+        using Base::operator=;
 
-        ProviderSegment(const ProviderSegment& other);
-        ProviderSegment& operator=(const ProviderSegment& other);
 
         // Conversion
         wm::ProviderSegment convert(const aron::typenavigator::NavigatorPtr& expectedStructure) const;
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
index 2cd7aa55c3b369a0b73dd787399db44f550b97c7..78f275fe1a8b1285b852431acaa67dc13963874d 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
@@ -8,12 +8,6 @@
 namespace armarx::armem::ltm
 {
 
-    CoreSegment& CoreSegment::operator=(const CoreSegment& other)
-    {
-        other._copySelf(*this);
-        return *this;
-    }
-
     wm::CoreSegment CoreSegment::convert() const
     {
         wm::CoreSegment m;
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h
index f2ee3dc7298e5921f62e98e6f6f70e0228fefc7f..67f9da6f465820534a4214cbb423e14916819daf 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.h
@@ -21,8 +21,8 @@ namespace armarx::armem::ltm
     public:
 
         using Base::CoreSegmentBase;
+        using Base::operator=;
 
-        CoreSegment& operator=(const CoreSegment& other);
 
         // Conversion
         wm::CoreSegment convert() const;
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
index 80e6187864145bc60474ac2183cf8d11da857b16..38f2a142989324cab5aa9a47f2f80d7e91fa9b24 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
@@ -8,12 +8,6 @@
 namespace armarx::armem::ltm
 {
 
-    ProviderSegment& ProviderSegment::operator=(const ProviderSegment& other)
-    {
-        other._copySelf(*this);
-        return *this;
-    }
-
     wm::ProviderSegment ProviderSegment::convert() const
     {
         wm::ProviderSegment m;
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h
index 7b3cbcc01e2c06da14a8325d5618c372cce0a246..4e81db8a9270f58d44845d08f298b37d59424323 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.h
@@ -21,8 +21,8 @@ namespace armarx::armem::ltm
     public:
 
         using Base::ProviderSegmentBase;
+        using Base::operator=;
 
-        ProviderSegment& operator=(const ProviderSegment& other);
 
         // Conversion
         wm::ProviderSegment convert() const;
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp
index 21889472fb1a4d963c3fb5e2a466a1b178c20860..b4341c9da6b9bf6c1c9be6e1141ff712d9e00132 100644
--- a/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.cpp
@@ -7,15 +7,6 @@
 
 namespace armarx::armem::wm
 {
-
-    /*
-        CoreSegment& CoreSegment::operator=(const CoreSegment& other)
-        {
-            other._copySelf(*this);
-            return *this;
-        }
-        */
-
     void CoreSegment::_copySelfWithoutData(CoreSegment& other) const
     {
         other.id() = _id;
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h
index 74b168235ccfa36a2cfb1788ed7bab47b28b4822..1eaf327338929b1290e476951aa69bdde0d3723d 100644
--- a/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h
@@ -21,9 +21,13 @@ namespace armarx::armem::wm
     public:
 
         using Base::CoreSegmentBase;
-        virtual ~CoreSegment() override = default;
 
-        // CoreSegment& operator=(const CoreSegment& other);
+        CoreSegment(const CoreSegment& other) = default;
+        CoreSegment(CoreSegment&& other) = default;
+        CoreSegment& operator=(const CoreSegment& other) = default;
+        CoreSegment& operator=(CoreSegment&& other) = default;
+
+        virtual ~CoreSegment() override = default;
 
 
     protected:
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp
index 13d70a332e3e1e95f59f205b749ede5834e25181..517b35bfad666cdac02041694e787523c4c1e894 100644
--- a/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.cpp
@@ -8,15 +8,6 @@
 namespace armarx::armem::wm
 {
 
-    /*
-        ProviderSegment& ProviderSegment::operator=(const ProviderSegment& other)
-        {
-            other._copySelf(*this);
-            return *this;
-        }
-        */
-
-
     void ProviderSegment::_copySelfWithoutData(ProviderSegment& other) const
     {
         other.id() = _id;
diff --git a/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h
index 30e9e6e995c5a861a6e6165117c0dde703351627..0b703617d9b1b642153da505882e71aab8aa3723 100644
--- a/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h
+++ b/source/RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h
@@ -22,9 +22,13 @@ namespace armarx::armem::wm
     public:
 
         using Base::ProviderSegmentBase;
-        virtual ~ProviderSegment() override = default;
 
-        // ProviderSegment& operator=(const ProviderSegment& other);
+        ProviderSegment(const ProviderSegment& other) = default;
+        ProviderSegment(ProviderSegment&& other) = default;
+        ProviderSegment& operator=(const ProviderSegment& other) = default;
+        ProviderSegment& operator=(ProviderSegment&& other) = default;
+
+        virtual ~ProviderSegment() override = default;
 
 
     protected: