diff --git a/alib2algo/src/automaton/determinize/Determinize.cpp b/alib2algo/src/automaton/determinize/Determinize.cpp
index 9850948189fc374dbb29900999d03e7bc0c82af8..930f6fa81b10cc65a78b96765516443b67678b79 100644
--- a/alib2algo/src/automaton/determinize/Determinize.cpp
+++ b/alib2algo/src/automaton/determinize/Determinize.cpp
@@ -37,36 +37,42 @@ DFA<> Determinize::determinize(const automaton::DFA<>& automaton) {
 }
 
 auto DeterminizeDFA = registration::OverloadRegister < Determinize, automaton::DFA<>, automaton::DFA<> >(Determinize::determinize);
+auto DeterminizeDFA2 = registration::AbstractRegister < Determinize, automaton::DFA < >, const automaton::DFA < > & > ( Determinize::determinize );
 
 DPDA < > Determinize::determinize(const automaton::DPDA < > & automaton) {
 	return automaton;
 }
 
 auto DeterminizeDPDA = registration::OverloadRegister < Determinize, automaton::DPDA < >, automaton::DPDA < > >(Determinize::determinize);
+auto DeterminizeDPDA2 = registration::AbstractRegister < Determinize, automaton::DPDA < >, const automaton::DPDA < > & > ( Determinize::determinize );
 
 SinglePopDPDA < > Determinize::determinize(const automaton::SinglePopDPDA < > & automaton) {
 	return automaton;
 }
 
 auto DeterminizeSinglePopDPDA = registration::OverloadRegister < Determinize, automaton::SinglePopDPDA < >, automaton::SinglePopDPDA < > >(Determinize::determinize);
+auto DeterminizeSinglePopDPDA2 = registration::AbstractRegister < Determinize, automaton::SinglePopDPDA < >, const automaton::SinglePopDPDA < > & > ( Determinize::determinize );
 
 InputDrivenDPDA < > Determinize::determinize(const automaton::InputDrivenDPDA < > & automaton) {
 	return automaton;
 }
 
 auto DeterminizeInputDrivenDPDA = registration::OverloadRegister < Determinize, automaton::InputDrivenDPDA < >, automaton::InputDrivenDPDA < > >(Determinize::determinize);
+auto DeterminizeInputDrivenDPDA2 = registration::AbstractRegister < Determinize, automaton::InputDrivenDPDA < >, const automaton::InputDrivenDPDA < > & > ( Determinize::determinize );
 
 VisiblyPushdownDPDA < > Determinize::determinize(const automaton::VisiblyPushdownDPDA < > & automaton) {
 	return automaton;
 }
 
 auto DeterminizeVisiblyPushdownDPDA = registration::OverloadRegister < Determinize, automaton::VisiblyPushdownDPDA < >, automaton::VisiblyPushdownDPDA < > >(Determinize::determinize);
+auto DeterminizeVisiblyPushdownDPDA2 = registration::AbstractRegister < Determinize, automaton::VisiblyPushdownDPDA < >, const automaton::VisiblyPushdownDPDA < > & > ( Determinize::determinize );
 
 RealTimeHeightDeterministicDPDA < > Determinize::determinize(const automaton::RealTimeHeightDeterministicDPDA < > & automaton) {
 	return automaton;
 }
 
 auto DeterminizeRealTimeHeightDeterministicDPDA = registration::OverloadRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < >, automaton::RealTimeHeightDeterministicDPDA < > >(Determinize::determinize);
+auto DeterminizeRealTimeHeightDeterministicDPDA2 = registration::AbstractRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < >, const automaton::RealTimeHeightDeterministicDPDA < > & > ( Determinize::determinize );
 
 DPDA < > Determinize::determinize(const automaton::NPDA < > & automaton) {
 	automaton::RealTimeHeightDeterministicNPDA < > rhpda = automaton::PDAToRHPDA::convert(automaton);
@@ -75,18 +81,21 @@ DPDA < > Determinize::determinize(const automaton::NPDA < > & automaton) {
 }
 
 auto DeterminizeNPDA = registration::OverloadRegister < Determinize, automaton::DPDA < >, automaton::NPDA < > >(Determinize::determinize);
+auto DeterminizeNPDA2 = registration::AbstractRegister < Determinize, automaton::DPDA < >, const automaton::NPDA < > & > ( Determinize::determinize );
 
 OneTapeDTM<> Determinize::determinize(const automaton::OneTapeDTM<>& automaton) {
 	return automaton;
 }
 
 auto DeterminizeOneTapeDTM = registration::OverloadRegister < Determinize, automaton::OneTapeDTM<>, automaton::OneTapeDTM < > >(Determinize::determinize);
+auto DeterminizeOneTapeDTM2 = registration::AbstractRegister < Determinize, automaton::OneTapeDTM < >, const automaton::OneTapeDTM < > & > ( Determinize::determinize );
 
 DFTA < > Determinize::determinize(const automaton::DFTA < > & automaton) {
 	return automaton;
 }
 
 auto DeterminizeDFTA = registration::OverloadRegister < Determinize, automaton::DFTA < >, automaton::DFTA < > >(Determinize::determinize);
+auto DeterminizeDFTA2 = registration::AbstractRegister < Determinize, automaton::DFTA < >, const automaton::DFTA < > & > ( Determinize::determinize );
 
 
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
index 76a803cbaa919346f65ae880907dc6bc1ad44363..da08b34a96110d760db904d70e2a5fa50a5e7fd7 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
@@ -71,6 +71,7 @@ automaton::InputDrivenDPDA < > Determinize::determinize ( const automaton::Input
 }
 
 auto DeterminizeInputDrivenNPDA = registration::OverloadRegister < Determinize, automaton::InputDrivenDPDA < >, automaton::InputDrivenNPDA < > > ( Determinize::determinize );
+auto DeterminizeInputDrivenNPDA2 = registration::AbstractRegister < Determinize, automaton::InputDrivenDPDA < >, const automaton::InputDrivenNPDA < > & > ( Determinize::determinize );
 
 } /* namespace determinize */
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
index 63b2c78a8ae7d3fa04030737083a8ad723cc7557..64b7031278f8e6761c226af6885f7cddbeb08600 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
@@ -95,6 +95,7 @@ DFTA < > Determinize::determinize(const NFTA < > & nfta) {
 }
 
 auto DeterminizeNFTA = registration::OverloadRegister < Determinize, automaton::DFTA < >, automaton::NFTA < > > ( Determinize::determinize );
+auto DeterminizeNFTA2 = registration::AbstractRegister < Determinize, automaton::DFTA < >, const automaton::NFTA < > & > ( Determinize::determinize );
 
 } /* namespace determinize */
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
index b757f4e103f690da35cd01f283dd65c7879636b0..a7fed4fb757a635bfa4d1cef6135729cacbabf3c 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
@@ -278,6 +278,7 @@ automaton::RealTimeHeightDeterministicDPDA < > Determinize::determinize(const au
 }
 
 auto DeterminizeRealTimeHeightDeterministicNPDA = registration::OverloadRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < >, automaton::RealTimeHeightDeterministicNPDA < > > ( Determinize::determinize );
+auto DeterminizeRealTimeHeightDeterministicNPDA2 = registration::AbstractRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < >, const automaton::RealTimeHeightDeterministicNPDA < > & > ( Determinize::determinize );
 
 } /* namespace determinize */
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
index 15493522c4994e12b963789fe3b23eb9fa5c9823..39ea6c3c636d4a51e78d30765c13b7816893db06 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
@@ -206,6 +206,7 @@ automaton::VisiblyPushdownDPDA < > Determinize::determinize(const automaton::Vis
 }
 
 auto DeterminizeVisiblyPushdownNPDA = registration::OverloadRegister < Determinize, automaton::VisiblyPushdownDPDA < >, automaton::VisiblyPushdownNPDA < > > ( Determinize::determinize );
+auto DeterminizeVisiblyPushdownNPDA2 = registration::AbstractRegister < Determinize, automaton::VisiblyPushdownDPDA < >, const automaton::VisiblyPushdownNPDA < > & > ( Determinize::determinize );
 
 } /* namespace determinize */