diff --git a/alib2common/src/core/components/setComponents.hpp b/alib2common/src/core/components/setComponents.hpp
index f24dd9cb287edf55b45df0935f5dd3af7e0e864e..356e94f2c16bacf586309cafd9efac34ce3a4488 100644
--- a/alib2common/src/core/components/setComponents.hpp
+++ b/alib2common/src/core/components/setComponents.hpp
@@ -232,9 +232,33 @@ public:
 	}
 
 	static void registerComponent ( ) {
-		std::array < std::string, 0 > names;
-		ComponentType & ( Derived::* method ) ( ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::get;
-		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( method, "get", names );
+		std::array < std::string, 0 > emptyNames;
+		std::array < std::string, 1 > elementNames = { { "element" } };
+		std::array < std::string, 1 > dataNames = { { "data" } };
+
+		ComponentType & ( Derived::* getMethod ) ( ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::get;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( getMethod, "get", emptyNames );
+
+		const ComponentType & ( Derived::* constGetMethod ) ( ) const = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::get;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( constGetMethod, "get", emptyNames );
+
+		void ( Derived::* setMethod ) ( ComponentType ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::set;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( setMethod, "set", dataNames );
+
+		bool ( Derived::* addElement ) ( typename ComponentType::value_type ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::add;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( addElement, "add", elementNames );
+
+		void ( Derived::* addSet ) ( ComponentType ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::add;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( addSet, "add", dataNames );
+
+		bool ( Derived::* removeElement ) ( const typename ComponentType::value_type & ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::remove;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( removeElement, "remove", elementNames );
+
+		void ( Derived::* removeSet ) ( const ComponentType & ) = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::remove;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( removeSet, "remove", dataNames );
+
+		bool ( Derived::* emptyMethod ) ( ) const = & SetComponent < Derived, ComponentType, typename ComponentType::value_type, ComponentName >::empty;
+		abstraction::AlgorithmRegistry::registerMethod < ComponentName > ( emptyMethod, "empty", emptyNames );
 	}
 };