diff --git a/alib2cli/test-src/cli/CliTest.cpp b/alib2cli/test-src/cli/CliTest.cpp
index e236bb2e058926026a0d0ba2ac6eb70eb5075253..78c4248b2a59784198bb057a18de7d285a07c7d3 100644
--- a/alib2cli/test-src/cli/CliTest.cpp
+++ b/alib2cli/test-src/cli/CliTest.cpp
@@ -290,7 +290,7 @@ public:
 
 namespace {
 
-auto fooBar = registration::MethodRegister < int, Foo, int > ( & Foo::bar, "bar" );
+auto fooBar = registration::MethodRegister < Foo, int, Foo, int > ( & Foo::bar, "bar" );
 
 } /* namespace */
 
diff --git a/alib2common/src/registration/AlgoRegistration.hpp b/alib2common/src/registration/AlgoRegistration.hpp
index 5d210c27df1936b5e080bc76ce4cafbb007033a0..8751a68be527bf86083d20a3ae68b8094b0b0e15 100644
--- a/alib2common/src/registration/AlgoRegistration.hpp
+++ b/alib2common/src/registration/AlgoRegistration.hpp
@@ -58,14 +58,14 @@ public:
 
 };
 
-template < class ReturnType, class ObjectType, class ... ParameterTypes >
+template < class Algorithm, class ReturnType, class ObjectType, class ... ParameterTypes >
 class MethodRegister : public AlgoRegister {
 public:
 	template < class ... ParamNames >
 	MethodRegister ( ReturnType ( ObjectType::* callback ) ( ParameterTypes ... ), std::string methodName, ParamNames ... paramNames ) {
 		std::array < std::string, sizeof ... ( ParameterTypes ) > parameterNames = generateNames < sizeof ... ( ParameterTypes ) > ( paramNames ... );
 
-		abstraction::AlgorithmRegistry::registerMethod < ObjectType > ( callback, methodName, std::move ( parameterNames ) );
+		abstraction::AlgorithmRegistry::registerMethod < Algorithm > ( callback, methodName, std::move ( parameterNames ) );
 	}
 
 };