diff --git a/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp b/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
index eb11c5014e999975e18e73e155c55ea319eb50d2..0d7ea54da8794b0559e7c7f02d88db49323d0d42 100644
--- a/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
+++ b/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
@@ -20,14 +20,14 @@ void GrammarGenerateUpToLength::tearDown() {
 }
 
 void GrammarGenerateUpToLength::testGenerate1() {
-	alphabet::Symbol S = alphabet::Symbol("S");
-	alphabet::Symbol A = alphabet::Symbol("A");
-	alphabet::Symbol B = alphabet::Symbol("B");
-	alphabet::Symbol C = alphabet::Symbol("C");
-	alphabet::Symbol D = alphabet::Symbol("D");
+	DefaultSymbolType S = DefaultSymbolType("S");
+	DefaultSymbolType A = DefaultSymbolType("A");
+	DefaultSymbolType B = DefaultSymbolType("B");
+	DefaultSymbolType C = DefaultSymbolType("C");
+	DefaultSymbolType D = DefaultSymbolType("D");
 
-	alphabet::Symbol a = alphabet::Symbol('a');
-	alphabet::Symbol b = alphabet::Symbol('b');
+	DefaultSymbolType a = DefaultSymbolType('a');
+	DefaultSymbolType b = DefaultSymbolType('b');
 
 	grammar::EpsilonFreeCFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
@@ -40,16 +40,16 @@ void GrammarGenerateUpToLength::testGenerate1() {
 }
 
 void GrammarGenerateUpToLength::testGenerate2() {
-	alphabet::Symbol S = alphabet::Symbol("S");
-	alphabet::Symbol A = alphabet::Symbol("A");
-	alphabet::Symbol B = alphabet::Symbol("B");
-	alphabet::Symbol C = alphabet::Symbol("C");
-	alphabet::Symbol D = alphabet::Symbol("D");
+	DefaultSymbolType S = DefaultSymbolType("S");
+	DefaultSymbolType A = DefaultSymbolType("A");
+	DefaultSymbolType B = DefaultSymbolType("B");
+	DefaultSymbolType C = DefaultSymbolType("C");
+	DefaultSymbolType D = DefaultSymbolType("D");
 
-	alphabet::Symbol a = alphabet::Symbol('a');
-	alphabet::Symbol b = alphabet::Symbol('b');
-	alphabet::Symbol c = alphabet::Symbol('c');
-	alphabet::Symbol d = alphabet::Symbol('d');
+	DefaultSymbolType a = DefaultSymbolType('a');
+	DefaultSymbolType b = DefaultSymbolType('b');
+	DefaultSymbolType c = DefaultSymbolType('c');
+	DefaultSymbolType d = DefaultSymbolType('d');
 
 	grammar::EpsilonFreeCFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
@@ -71,22 +71,22 @@ void GrammarGenerateUpToLength::testGenerate2() {
 	grammar1.setGeneratesEpsilon(true);
 
 	std::set<string::LinearString < >> strings;
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, c}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, c, c}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{d, d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{a, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{a, d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{b, c}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{b, c, c}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, c, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{a, c, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{b, c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, c}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, c, c}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{d, d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{a, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{a, d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{b, c}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{b, c, c}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{a, c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{b, c, d}));
 
 	for(const string::LinearString < >& str : grammar::generate::GenerateUpToLength::generate(grammar1, 3)) {
 		std::cout << alib::StringDataFactory::toString(string::String(str)) << std::endl;
@@ -96,16 +96,16 @@ void GrammarGenerateUpToLength::testGenerate2() {
 }
 
 void GrammarGenerateUpToLength::testGenerate3() {
-	alphabet::Symbol S = alphabet::Symbol("S");
-	alphabet::Symbol A = alphabet::Symbol("A");
-	alphabet::Symbol B = alphabet::Symbol("B");
-	alphabet::Symbol C = alphabet::Symbol("C");
-	alphabet::Symbol D = alphabet::Symbol("D");
+	DefaultSymbolType S = DefaultSymbolType("S");
+	DefaultSymbolType A = DefaultSymbolType("A");
+	DefaultSymbolType B = DefaultSymbolType("B");
+	DefaultSymbolType C = DefaultSymbolType("C");
+	DefaultSymbolType D = DefaultSymbolType("D");
 
-	alphabet::Symbol a = alphabet::Symbol('a');
-	alphabet::Symbol b = alphabet::Symbol('b');
-	alphabet::Symbol c = alphabet::Symbol('c');
-	alphabet::Symbol d = alphabet::Symbol('d');
+	DefaultSymbolType a = DefaultSymbolType('a');
+	DefaultSymbolType b = DefaultSymbolType('b');
+	DefaultSymbolType c = DefaultSymbolType('c');
+	DefaultSymbolType d = DefaultSymbolType('d');
 
 	grammar::EpsilonFreeCFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
@@ -125,14 +125,14 @@ void GrammarGenerateUpToLength::testGenerate3() {
 	grammar1.addRule({D}, {d});
 
 	std::set<string::LinearString < >> strings;
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{d, d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{a, d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, c, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{c, d, d}));
-	strings.insert(string::LinearString < >(std::vector<alphabet::Symbol>{b, c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{d, d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{a, d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, c, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{c, d, d}));
+	strings.insert(string::LinearString < >(std::vector<DefaultSymbolType>{b, c, d}));
 
 	for(const string::LinearString < >& str : grammar::generate::GenerateUpToLength::generate(grammar1, 3)) {
 		std::cout << alib::StringDataFactory::toString(string::String(str)) << std::endl;