diff --git a/alib2abstraction/src/registration/AlgoRegistration.hpp b/alib2abstraction/src/registration/AlgoRegistration.hpp
index 646da94474361a710bd190612fa30c0329297d93..68352a479c8e7f8fc4e24516e54e3629dd98bb85 100644
--- a/alib2abstraction/src/registration/AlgoRegistration.hpp
+++ b/alib2abstraction/src/registration/AlgoRegistration.hpp
@@ -64,12 +64,19 @@ public:
 	}
 
 	WrapperRegister ( WrapperRegister && ) = default;
+
+	WrapperRegister && setDocumentation ( std::string documentation ) && {
+		abstraction::AlgorithmRegistry::setDocumentationOfWrapper < Algorithm, ParameterTypes ... > ( std::move ( documentation ) );
+		return std::move ( * this );
+	}
 };
 
 template < class Algorithm, class ReturnType, class ObjectType, class ... ParameterTypes >
 class MethodRegister : public ext::Register < void > {
 	registration::NormalizationRegister < ReturnType > normalize;
 
+	std::string m_methodName;
+
 public:
 	template < class ... ParamNames >
 	MethodRegister ( ReturnType ( ObjectType::* callback ) ( ParameterTypes ... ), std::string methodName, ParamNames ... paramNames ) : ext::Register < void > ( [=] ( ) {
@@ -78,11 +85,16 @@ public:
 				abstraction::AlgorithmRegistry::registerMethod < Algorithm > ( callback, methodName, std::move ( parameterNames ) );
 			}, [=] ( ) {
 				abstraction::AlgorithmRegistry::unregisterMethod < Algorithm, ObjectType, ParameterTypes ... > ( methodName );
-			} ) {
+			} ), m_methodName ( methodName ) {
 	}
 
 	MethodRegister ( MethodRegister && ) = default;
 
+	MethodRegister && setDocumentation ( std::string documentation ) && {
+		abstraction::AlgorithmRegistry::setDocumentationOfMethod < Algorithm, ObjectType, ParameterTypes ... > ( m_methodName, std::move ( documentation ) );
+		return std::move ( * this );
+	}
+
 };
 
 } /* namespace registration */
diff --git a/alib2raw/src/registration/RawRegistration.hpp b/alib2raw/src/registration/RawRegistration.hpp
index 4cdb01f64897a4170066194faca584228da4bce4..a8500942b95eb33519a31140048d0aef57ee09e1 100644
--- a/alib2raw/src/registration/RawRegistration.hpp
+++ b/alib2raw/src/registration/RawRegistration.hpp
@@ -38,6 +38,11 @@ public:
 	RawReaderRegister ( ) {
 		abstraction::RawReaderRegistry::registerRawReader < Type > ( );
 		abstraction::AlgorithmRegistry::registerWrapper < raw::Parse < Type >, Type, const std::string & > ( raw::Parse < Type >::abstractionFromString, std::array < std::string, 1 > { { "arg0" } } );
+		abstraction::AlgorithmRegistry::setDocumentationOfWrapper < raw::Parse < Type >, const std::string & > (
+"Raw parsing of " + ext::to_string < Type > ( ) + ".\n\
+\n\
+@param arg0 the parsed string\n\
+@return value parsed from @p arg0" );
 	}
 
 	~RawReaderRegister ( ) {
@@ -52,6 +57,11 @@ public:
 	RawWriterRegister ( ) {
 		abstraction::RawWriterRegistry::registerRawWriter < Type > ( );
 		abstraction::AlgorithmRegistry::registerWrapper < raw::Compose, std::string, const Type & > ( raw::Compose::abstractionFromType, std::array < std::string, 1 > { { "arg0" } } );
+		abstraction::AlgorithmRegistry::setDocumentationOfWrapper < raw::Compose, const Type & > (
+"Raw composing algorithm.\n\
+\n\
+@param arg0 the composed value\n\
+@return the @p arg0 in raw representation" );
 	}
 
 	~RawWriterRegister ( ) {
diff --git a/alib2str/src/registration/StringRegistration.hpp b/alib2str/src/registration/StringRegistration.hpp
index ca3ee9029949eb18288c6143ed118e010e91481d..42b8041fa37d4be7046f415cedd0e78da6901844 100644
--- a/alib2str/src/registration/StringRegistration.hpp
+++ b/alib2str/src/registration/StringRegistration.hpp
@@ -51,6 +51,11 @@ class StringReaderGroupRegister {
 public:
 	StringReaderGroupRegister ( ) {
 		abstraction::AlgorithmRegistry::registerWrapper < string::Parse < Group >, abstraction::UnspecifiedType, std::string && > ( string::Parse < Group >::abstractionFromString, std::array < std::string, 1 > { { "arg0" } } );
+		abstraction::AlgorithmRegistry::setDocumentationOfWrapper < string::Parse < Group >, std::string && > (
+"String parsing of datatype in " + ext::to_string < Group > ( ) + " category.\n\
+\n\
+@param arg0 the parsed string\n\
+@return value parsed from @p arg0" );
 	}
 
 	~StringReaderGroupRegister ( ) {
@@ -64,6 +69,11 @@ public:
 	StringWriterRegister ( ) {
 		abstraction::StringWriterRegistry::registerStringWriter < Type > ( );
 		abstraction::AlgorithmRegistry::registerWrapper < string::Compose, std::string, const Type & > ( string::Compose::abstractionFromType, std::array < std::string, 1 > { { "arg0" } } );
+		abstraction::AlgorithmRegistry::setDocumentationOfWrapper < string::Compose, const Type & > (
+"String composing algorithm.\n\
+\n\
+@param arg0 the composed value\n\
+@return the @p arg0 in string representation" );
 	}
 
 	~StringWriterRegister ( ) {
diff --git a/alib2xml/src/registration/XmlRegistration.cpp b/alib2xml/src/registration/XmlRegistration.cpp
index 0352a604d04559a133072a1103671edf037cd88d..ea9a99d07a2fa0658a0b43e51ff2eafaa1d80d16 100644
--- a/alib2xml/src/registration/XmlRegistration.cpp
+++ b/alib2xml/src/registration/XmlRegistration.cpp
@@ -3,6 +3,10 @@
 
 namespace {
 
-auto xmlParse = registration::WrapperRegister < xml::Parse, abstraction::UnspecifiedType, ext::deque < sax::Token > && > ( xml::Parse::abstractionFromTokens, "arg0" );
+auto xmlParse = registration::WrapperRegister < xml::Parse, abstraction::UnspecifiedType, ext::deque < sax::Token > && > ( xml::Parse::abstractionFromTokens, "arg0" ).setDocumentation (
+"Xml parsing of datatype.\n\
+\n\
+@param arg0 the parsed sequence of xml tokens\n\
+@return value parsed from @p arg0" );
 
 }
diff --git a/alib2xml/src/registration/XmlRegistration.hpp b/alib2xml/src/registration/XmlRegistration.hpp
index 9e159c91092b5226a76e671504c136df72a0daa6..7fcd06158e5dc18219e4f38e056e6d9d92df42fe 100644
--- a/alib2xml/src/registration/XmlRegistration.hpp
+++ b/alib2xml/src/registration/XmlRegistration.hpp
@@ -50,6 +50,11 @@ public:
 	XmlWriterRegister ( ) {
 		abstraction::XmlComposerRegistry::registerXmlComposer < Type > ( );
 		abstraction::AlgorithmRegistry::registerWrapper < xml::Compose, ext::deque < sax::Token >, const Type & > ( xml::Compose::abstractionFromType, std::array < std::string, 1 > { { "arg0" } } );
+		abstraction::AlgorithmRegistry::setDocumentationOfWrapper < xml::Compose, const Type & > (
+"Xml composing algorithm.\n\
+\n\
+@param arg0 the composed value\n\
+@return the @p arg0 in xml tokens representation" );
 	}
 
 	~XmlWriterRegister ( ) {