diff --git a/alib2data/src/alphabet/BarSymbol.h b/alib2data/src/alphabet/BarSymbol.h
index 34281d18e891f6c8871c185517f235d0d16efe41..54e225fd50cc47820ac263f7bb94fa6708beac3e 100644
--- a/alib2data/src/alphabet/BarSymbol.h
+++ b/alib2data/src/alphabet/BarSymbol.h
@@ -114,11 +114,6 @@ inline BarSymbol BarSymbol::instance < BarSymbol > ( ) {
 	return BarSymbol ( );
 }
 
-template < >
-inline Symbol BarSymbol::instance < Symbol > ( ) {
-	return Symbol ( BarSymbol ( ) );
-}
-
 template < >
 inline object::Object BarSymbol::instance < object::Object > ( ) {
 	return object::Object ( BarSymbol ( ) );
diff --git a/alib2data/src/alphabet/BlankSymbol.h b/alib2data/src/alphabet/BlankSymbol.h
index 7f3010f9f3a39f9e0ea6d4e3188bad7c0084b21f..b9f401392cd2fcf6dc16eb33bf1a33fefd3742e4 100644
--- a/alib2data/src/alphabet/BlankSymbol.h
+++ b/alib2data/src/alphabet/BlankSymbol.h
@@ -119,11 +119,6 @@ inline BlankSymbol BlankSymbol::instance < BlankSymbol > ( ) {
 	return BlankSymbol ( );
 }
 
-template < >
-inline Symbol BlankSymbol::instance < Symbol > ( ) {
-	return Symbol ( BlankSymbol ( ) );
-}
-
 template < >
 inline common::ranked_symbol < > BlankSymbol::instance < common::ranked_symbol < > > ( ) {
 	return common::ranked_symbol < > ( BlankSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.h b/alib2data/src/alphabet/BottomOfTheStackSymbol.h
index ca6ee0b923bb81a16a0ecfa2acef3a55d9abbb34..2f2f47a38f484f6a9e7cfc3b637a3291ab9fc4a3 100644
--- a/alib2data/src/alphabet/BottomOfTheStackSymbol.h
+++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.h
@@ -119,11 +119,6 @@ inline BottomOfTheStackSymbol BottomOfTheStackSymbol::instance < BottomOfTheStac
 	return BottomOfTheStackSymbol ( );
 }
 
-template < >
-inline Symbol BottomOfTheStackSymbol::instance < Symbol > ( ) {
-	return Symbol ( BottomOfTheStackSymbol ( ) );
-}
-
 template < >
 inline common::ranked_symbol < > BottomOfTheStackSymbol::instance < common::ranked_symbol < > > ( ) {
 	return common::ranked_symbol < > ( BottomOfTheStackSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
diff --git a/alib2data/src/alphabet/EndSymbol.h b/alib2data/src/alphabet/EndSymbol.h
index 1868b652bb8e23fe0a8fdf1a5c896e2c9b52f2bb..156bb883a7ccce6d84361549f10ff52c4f33e508 100644
--- a/alib2data/src/alphabet/EndSymbol.h
+++ b/alib2data/src/alphabet/EndSymbol.h
@@ -119,11 +119,6 @@ inline EndSymbol EndSymbol::instance < EndSymbol > ( ) {
 	return EndSymbol ( );
 }
 
-template < >
-inline Symbol EndSymbol::instance < Symbol > ( ) {
-	return Symbol ( EndSymbol ( ) );
-}
-
 template < >
 inline common::ranked_symbol < > EndSymbol::instance < common::ranked_symbol < > > ( ) {
 	return common::ranked_symbol < > ( EndSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
diff --git a/alib2data/src/alphabet/InitialSymbol.h b/alib2data/src/alphabet/InitialSymbol.h
index 5e39a4b48382eddd53188d667f62ceb62ac57a1f..36243576f9ff3aaec59015fb1ead915b681258c0 100644
--- a/alib2data/src/alphabet/InitialSymbol.h
+++ b/alib2data/src/alphabet/InitialSymbol.h
@@ -119,11 +119,6 @@ inline InitialSymbol InitialSymbol::instance < InitialSymbol > ( ) {
 	return InitialSymbol ( );
 }
 
-template < >
-inline Symbol InitialSymbol::instance < Symbol > ( ) {
-	return Symbol ( InitialSymbol ( ) );
-}
-
 template < >
 inline common::ranked_symbol < > InitialSymbol::instance < common::ranked_symbol < > > ( ) {
 	return common::ranked_symbol < > ( InitialSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
diff --git a/alib2data/src/alphabet/NonlinearVariableSymbol.h b/alib2data/src/alphabet/NonlinearVariableSymbol.h
index 38e975d14f86a67e6e72b931fc078c1d40d5188d..b9986b990a690b14a915dbe27063520eb403363c 100644
--- a/alib2data/src/alphabet/NonlinearVariableSymbol.h
+++ b/alib2data/src/alphabet/NonlinearVariableSymbol.h
@@ -24,7 +24,7 @@
 #ifndef NONLINEAR_VARIABLE_SYMBOL_H_
 #define NONLINEAR_VARIABLE_SYMBOL_H_
 
-#include "Symbol.h"
+#include "SymbolBase.h"
 
 #include <core/normalize.hpp>
 #include <alphabet/common/SymbolNormalize.h>
diff --git a/alib2data/src/alphabet/StartSymbol.h b/alib2data/src/alphabet/StartSymbol.h
index 4123566092a8f91ff366b69c7b468846017a3487..1fad3b3fecda317b5a956b2162995a8599abf64d 100644
--- a/alib2data/src/alphabet/StartSymbol.h
+++ b/alib2data/src/alphabet/StartSymbol.h
@@ -119,11 +119,6 @@ inline StartSymbol StartSymbol::instance < StartSymbol > ( ) {
 	return StartSymbol ( );
 }
 
-template < >
-inline Symbol StartSymbol::instance < Symbol > ( ) {
-	return Symbol ( StartSymbol ( ) );
-}
-
 template < >
 inline common::ranked_symbol < > StartSymbol::instance < common::ranked_symbol < > > ( ) {
 	return common::ranked_symbol < > ( StartSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
diff --git a/alib2data/src/alphabet/Symbol.h b/alib2data/src/alphabet/Symbol.h
index 68cfff4d42892d4b88b3f659b6e5f731ceb7f27e..04cf5112a065e6c0d64912066f6872fea983a65f 100644
--- a/alib2data/src/alphabet/Symbol.h
+++ b/alib2data/src/alphabet/Symbol.h
@@ -8,21 +8,9 @@
 #ifndef SYMBOL_H_
 #define SYMBOL_H_
 
-#include <base/WrapperBase.hpp>
-#include "SymbolBase.h"
-
 namespace alphabet {
 
-/**
- * \brief Wrapper around any symbol type.
- */
-class Symbol : public base::WrapperBase < SymbolBase > {
-	/**
-	 * Inherite constructors of base::WrapperBase < SymbolBase >
-	 */
-	using base::WrapperBase < SymbolBase >::WrapperBase;
-
-};
+class Symbol;
 
 } /* namespace alphabet */
 
diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h
index 869347650a7d9fe4ce79e6e48beffa50eef62c91..8397440f2c40f6d97259d3985f428b8a290d9825 100644
--- a/alib2data/src/alphabet/VariablesBarSymbol.h
+++ b/alib2data/src/alphabet/VariablesBarSymbol.h
@@ -119,11 +119,6 @@ inline VariablesBarSymbol VariablesBarSymbol::instance < VariablesBarSymbol > (
 	return VariablesBarSymbol ( );
 }
 
-template < >
-inline Symbol VariablesBarSymbol::instance < Symbol > ( ) {
-	return Symbol ( VariablesBarSymbol ( ) );
-}
-
 // TODO make partially specialised when needed by classes or variables, functions can be partially specialsed
 template < >
 inline common::ranked_symbol < > VariablesBarSymbol::instance < common::ranked_symbol < > > ( ) {
diff --git a/alib2data/src/alphabet/WildcardSymbol.h b/alib2data/src/alphabet/WildcardSymbol.h
index 61cbdc31e6535560d12397ca247f7f479bbf9044..c16d9662f227e18375a8cab7253ede65a675dbbf 100644
--- a/alib2data/src/alphabet/WildcardSymbol.h
+++ b/alib2data/src/alphabet/WildcardSymbol.h
@@ -119,11 +119,6 @@ inline WildcardSymbol WildcardSymbol::instance < WildcardSymbol > ( ) {
 	return WildcardSymbol ( );
 }
 
-template < >
-inline Symbol WildcardSymbol::instance < Symbol > ( ) {
-	return Symbol ( WildcardSymbol ( ) );
-}
-
 // TODO make partially specialised when needed by classes or variables, functions can't be partially specialsed
 template < >
 inline common::ranked_symbol < > WildcardSymbol::instance < common::ranked_symbol < > > ( ) {
diff --git a/alib2data/src/alphabet/xml/BarSymbol.cpp b/alib2data/src/alphabet/xml/BarSymbol.cpp
index dee23f3757e723e6182b98578598d366e2bcdcc2..f0a193022ca46e5982b5940cd01d6e0cb2b9111c 100644
--- a/alib2data/src/alphabet/xml/BarSymbol.cpp
+++ b/alib2data/src/alphabet/xml/BarSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::BarSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::BarSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::BarSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::BarSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::BarSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/BlankSymbol.cpp b/alib2data/src/alphabet/xml/BlankSymbol.cpp
index 404589c45632a468dffa7322c13b785030b877a8..f4096203b7d73e9bb1a2da6ba71d0b817c6e81e5 100644
--- a/alib2data/src/alphabet/xml/BlankSymbol.cpp
+++ b/alib2data/src/alphabet/xml/BlankSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::BlankSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::BlankSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::BlankSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::BlankSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::BlankSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/BottomOfTheStackSymbol.cpp b/alib2data/src/alphabet/xml/BottomOfTheStackSymbol.cpp
index b98becdcd4e0be3ef544b1f33918159f52f41b9b..20e4bf1892cef69f426e50f795c03445a8096234 100644
--- a/alib2data/src/alphabet/xml/BottomOfTheStackSymbol.cpp
+++ b/alib2data/src/alphabet/xml/BottomOfTheStackSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::BottomOfTheStackSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::BottomOfTheStackSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::BottomOfTheStackSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::BottomOfTheStackSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::BottomOfTheStackSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/EndSymbol.cpp b/alib2data/src/alphabet/xml/EndSymbol.cpp
index 095f7d4cd8b83040cd60efe6bff5985ce956a946..2a199130f45302afb3c53303e26f70a7e03aa761 100644
--- a/alib2data/src/alphabet/xml/EndSymbol.cpp
+++ b/alib2data/src/alphabet/xml/EndSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::EndSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::EndSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::EndSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::EndSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::EndSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/InitialSymbol.cpp b/alib2data/src/alphabet/xml/InitialSymbol.cpp
index 27b94592b2a2b1e3c725b49c24e89632dfd9c691..ce9952f4c9768f445b2f99a13b5f9f34d977c1d4 100644
--- a/alib2data/src/alphabet/xml/InitialSymbol.cpp
+++ b/alib2data/src/alphabet/xml/InitialSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::InitialSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::InitialSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::InitialSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::InitialSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::InitialSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/NonlinearVariableSymbol.cpp b/alib2data/src/alphabet/xml/NonlinearVariableSymbol.cpp
index d8acfb2286b58e0380465e8bad720f54ffab8f1b..406abc43ce31f24808a77329690f1b7e3562f318 100644
--- a/alib2data/src/alphabet/xml/NonlinearVariableSymbol.cpp
+++ b/alib2data/src/alphabet/xml/NonlinearVariableSymbol.cpp
@@ -16,7 +16,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::NonlinearVariableSymbol < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::NonlinearVariableSymbol < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::NonlinearVariableSymbol < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::NonlinearVariableSymbol < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::NonlinearVariableSymbol < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/RankedSymbol.cpp b/alib2data/src/alphabet/xml/RankedSymbol.cpp
index f1de90e160f6d378e818090cf6a63a0e3f19292a..83f4d739afe43a5e41dae08dc47b85c0026e36ad 100644
--- a/alib2data/src/alphabet/xml/RankedSymbol.cpp
+++ b/alib2data/src/alphabet/xml/RankedSymbol.cpp
@@ -16,7 +16,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::RankedSymbol < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::RankedSymbol < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::RankedSymbol < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::RankedSymbol < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::RankedSymbol < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/StartSymbol.cpp b/alib2data/src/alphabet/xml/StartSymbol.cpp
index d17c2ecf53ae5092261f3f4c318d38d899808119..a3383e810afb266126e5911961b0274477ab35d6 100644
--- a/alib2data/src/alphabet/xml/StartSymbol.cpp
+++ b/alib2data/src/alphabet/xml/StartSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::StartSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::StartSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::StartSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::StartSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::StartSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/VariablesBarSymbol.cpp b/alib2data/src/alphabet/xml/VariablesBarSymbol.cpp
index 65bf0b8b3586aeb47ecad71250c49ef1151c744e..13f7a0a001d1b243c9a92ecde35852ea0fe65187 100644
--- a/alib2data/src/alphabet/xml/VariablesBarSymbol.cpp
+++ b/alib2data/src/alphabet/xml/VariablesBarSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::VariablesBarSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::VariablesBarSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::VariablesBarSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::VariablesBarSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::VariablesBarSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/WildcardSymbol.cpp b/alib2data/src/alphabet/xml/WildcardSymbol.cpp
index bb3b1255028310923cb32d46c16b8bbab36a12f5..e459cfe857f11b4a024b19d5da2c86ff10128a8c 100644
--- a/alib2data/src/alphabet/xml/WildcardSymbol.cpp
+++ b/alib2data/src/alphabet/xml/WildcardSymbol.cpp
@@ -41,7 +41,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < alphabet::WildcardSymbol > ( );
 static auto xmlRead = registration::XmlReaderRegister < alphabet::WildcardSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::WildcardSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::WildcardSymbol > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::WildcardSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/test-src/alphabet/SymbolTest.cpp b/alib2data/test-src/alphabet/SymbolTest.cpp
index 35058cfc154c5c76ec7777ebee638925164b7fa0..83bae90ee2fe810fecf5588799c0620457eda69c 100644
--- a/alib2data/test-src/alphabet/SymbolTest.cpp
+++ b/alib2data/test-src/alphabet/SymbolTest.cpp
@@ -56,7 +56,6 @@ void SymbolTest::testDefaultValues ( ) {
 	std::cout << alphabet::BarSymbol::instance < std::string > ( ) << std::endl;
 	CPPUNIT_ASSERT ( alphabet::BarSymbol::instance < std::string > ( ) == "|");
 	CPPUNIT_ASSERT ( alphabet::BarSymbol::instance < alphabet::BarSymbol > ( ) == alphabet::BarSymbol ( ) );
-	CPPUNIT_ASSERT ( alphabet::BarSymbol::instance < alphabet::Symbol > ( ) == alphabet::Symbol ( alphabet::BarSymbol ( ) ) );
 	CPPUNIT_ASSERT ( alphabet::BarSymbol::instance < object::Object > ( ) == object::Object ( alphabet::BarSymbol ( ) ) );
 
 }
diff --git a/alib2str/src/alphabet/string/BarSymbol.cpp b/alib2str/src/alphabet/string/BarSymbol.cpp
index 40f0f254d0f755e1ede14f27f9267bc0dbeeac42..3c81f640ead7cd203e102c589a3af505f5fa21f8 100644
--- a/alib2str/src/alphabet/string/BarSymbol.cpp
+++ b/alib2str/src/alphabet/string/BarSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::BarSymbol >::compose ( std::ostream & output, const a
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::BarSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::BarSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::BarSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/BlankSymbol.cpp b/alib2str/src/alphabet/string/BlankSymbol.cpp
index 5a2207656a6677f18b08213edb1e519cb8ddeb90..37865be173adf611d311443e551b3b41bb83d653 100644
--- a/alib2str/src/alphabet/string/BlankSymbol.cpp
+++ b/alib2str/src/alphabet/string/BlankSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::BlankSymbol >::compose ( std::ostream & output, const
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::BlankSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::BlankSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::BlankSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/BottomOfTheStackSymbol.cpp b/alib2str/src/alphabet/string/BottomOfTheStackSymbol.cpp
index d34964ff6651ab5be0602bb2a4fe13c926805a4c..a6e50765b6b3c8cd201977371cb30b7176d01f55 100644
--- a/alib2str/src/alphabet/string/BottomOfTheStackSymbol.cpp
+++ b/alib2str/src/alphabet/string/BottomOfTheStackSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::BottomOfTheStackSymbol >::compose ( std::ostream & ou
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::BottomOfTheStackSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::BottomOfTheStackSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::BottomOfTheStackSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/EndSymbol.cpp b/alib2str/src/alphabet/string/EndSymbol.cpp
index 18f6e7daa41b23ab84efe6885f6fe80f93c35ead..2020056fb204de6a0e3cf3dceb017877c8532bd4 100644
--- a/alib2str/src/alphabet/string/EndSymbol.cpp
+++ b/alib2str/src/alphabet/string/EndSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::EndSymbol >::compose ( std::ostream & output, const a
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::EndSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::EndSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::EndSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/InitialSymbol.cpp b/alib2str/src/alphabet/string/InitialSymbol.cpp
index d26a7d1849c6bc99f81a5af6ae25976a6455e55f..149cf18a36d8267bab175b8744b038ab909c8889 100644
--- a/alib2str/src/alphabet/string/InitialSymbol.cpp
+++ b/alib2str/src/alphabet/string/InitialSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::InitialSymbol >::compose ( std::ostream & output, con
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::InitialSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::InitialSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::InitialSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/NonlinearVariableSymbol.cpp b/alib2str/src/alphabet/string/NonlinearVariableSymbol.cpp
index c325223bc55102e8f59318847f7ec8c481d090cd..73ebd391caa5cd8e76cff331a34541a1c47c1a76 100644
--- a/alib2str/src/alphabet/string/NonlinearVariableSymbol.cpp
+++ b/alib2str/src/alphabet/string/NonlinearVariableSymbol.cpp
@@ -13,7 +13,6 @@
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::NonlinearVariableSymbol < > > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::NonlinearVariableSymbol < > > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::NonlinearVariableSymbol < > > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/RankedSymbol.cpp b/alib2str/src/alphabet/string/RankedSymbol.cpp
index 7a7bbc36c791bbe2f14680f6ae10277eb49b73c4..f3f238cd91241c00150221acd8e7b05cb8f216ac 100644
--- a/alib2str/src/alphabet/string/RankedSymbol.cpp
+++ b/alib2str/src/alphabet/string/RankedSymbol.cpp
@@ -14,9 +14,7 @@
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::RankedSymbol < > > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::RankedSymbol < > > ( );
-
-static auto stringWrite3 = registration::StringWriterRegister < object::Object, object::AnyObject < common::ranked_symbol < > > > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::RankedSymbol < > > ( );
+static auto stringWrite2 = registration::StringWriterRegister < object::Object, object::AnyObject < common::ranked_symbol < > > > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/StartSymbol.cpp b/alib2str/src/alphabet/string/StartSymbol.cpp
index 78ce3c244e18f1275f7cf5cfd3e19d1765dba573..caa1b0dd2d0b2ec4b88395f96ff82c52e05cd321 100644
--- a/alib2str/src/alphabet/string/StartSymbol.cpp
+++ b/alib2str/src/alphabet/string/StartSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::StartSymbol >::compose ( std::ostream & output, const
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::StartSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::StartSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::StartSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/VariablesBarSymbol.cpp b/alib2str/src/alphabet/string/VariablesBarSymbol.cpp
index 6f266964c1afb4706122b1420dc607b765f44506..2b183cdf8cfa2539c73ddea7f31d1e8bd86c526f 100644
--- a/alib2str/src/alphabet/string/VariablesBarSymbol.cpp
+++ b/alib2str/src/alphabet/string/VariablesBarSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::VariablesBarSymbol >::compose ( std::ostream & output
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::VariablesBarSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::VariablesBarSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::VariablesBarSymbol > ( );
 
 } /* namespace */
diff --git a/alib2str/src/alphabet/string/WildcardSymbol.cpp b/alib2str/src/alphabet/string/WildcardSymbol.cpp
index 3cfcc4a26a7120c782da4859ec1d6c08c79e98fb..6097b44bec8652df6205cb362902dbfe6dca4715 100644
--- a/alib2str/src/alphabet/string/WildcardSymbol.cpp
+++ b/alib2str/src/alphabet/string/WildcardSymbol.cpp
@@ -30,7 +30,6 @@ void stringApi < alphabet::WildcardSymbol >::compose ( std::ostream & output, co
 
 namespace {
 
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::WildcardSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::WildcardSymbol > ( );
+static auto stringWrite = registration::StringWriterRegister < object::Object, alphabet::WildcardSymbol > ( );
 
 } /* namespace */