diff --git a/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp b/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp
index 9b3c0d22a8d328475619ae4df6c4ca5c6ba1a878..5effd4eb848720d0211f306ad04b3ba534ae3813 100644
--- a/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp
+++ b/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp
@@ -20,15 +20,15 @@ automaton::Automaton ExactFactorAutomaton::construct(const string::String& text)
 }
 
 automaton::EpsilonNFA < > ExactFactorAutomaton::construct(const string::LinearString < >& text) {
-	automaton::EpsilonNFA < > res(label::Label(0));
-	res.addFinalState(label::Label(0));
+	automaton::EpsilonNFA < > res(DefaultStateType(0));
+	res.addFinalState(DefaultStateType(0));
 	res.setInputAlphabet(text.getAlphabet());
 	int i = 1;
-	for(const alphabet::Symbol& symbol : text.getContent()) {
-		res.addState(label::Label(i));
-		res.addFinalState(label::Label(i));
-		res.addTransition(label::Label(i-1), symbol, label::Label(i));
-		res.addTransition(label::Label(0), label::Label(i));
+	for(const DefaultSymbolType& symbol : text.getContent()) {
+		res.addState(DefaultStateType(i));
+		res.addFinalState(DefaultStateType(i));
+		res.addTransition(DefaultStateType(i-1), symbol, DefaultStateType(i));
+		res.addTransition(DefaultStateType(0), DefaultStateType(i));
 		i++;
 	}
 	return res;
diff --git a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp
index fdcede925255cb03dca45580b1f2d944d4959c47..e25c8807578c19cd949776bc1ed9a3c561ac5bf3 100644
--- a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp
+++ b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp
@@ -20,18 +20,18 @@ automaton::Automaton ExactMatchingAutomaton::construct(const string::String& pat
 }
 
 automaton::NFA < > ExactMatchingAutomaton::construct(const string::LinearString < >& pattern) {
-	automaton::NFA < > res(label::Label(0));
+	automaton::NFA < > res(DefaultStateType(0));
 	res.setInputAlphabet(pattern.getAlphabet());
-	for(const alphabet::Symbol& symbol : pattern.getAlphabet()) {
-		res.addTransition(label::Label(0), symbol, label::Label(0));
+	for(const DefaultSymbolType& symbol : pattern.getAlphabet()) {
+		res.addTransition(DefaultStateType(0), symbol, DefaultStateType(0));
 	}
 	int i = 1;
-	for(const alphabet::Symbol& symbol : pattern.getContent()) {
-		res.addState(label::Label(i));
-		res.addTransition(label::Label(i-1), symbol, label::Label(i));
+	for(const DefaultSymbolType& symbol : pattern.getContent()) {
+		res.addState(DefaultStateType(i));
+		res.addTransition(DefaultStateType(i-1), symbol, DefaultStateType(i));
 		i++;
 	}
-	res.addFinalState(label::Label(i-1));
+	res.addFinalState(DefaultStateType(i-1));
 	return res;
 }
 
diff --git a/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp b/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp
index 11e031ebea04db9511b144f03156153d2d74f90e..e1eeca008c89a8c73a5cd9a9fb1eba879bcd53e8 100644
--- a/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp
+++ b/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp
@@ -19,24 +19,24 @@ automaton::Automaton ExactMultiNondeterministicSubsequenceAutomaton::construct(c
 }
 
 automaton::EpsilonNFA < > ExactMultiNondeterministicSubsequenceAutomaton::construct(const std::set<string::LinearString < >>& texts) {
-	automaton::EpsilonNFA < > res(label::Label(0));
-	res.addFinalState(label::Label(0));
+	automaton::EpsilonNFA < > res(DefaultStateType(0));
+	res.addFinalState(DefaultStateType(0));
 
 	int j = 0;
 	for(const string::LinearString < >& text : texts) {
 		res.addInputSymbols(text.getAlphabet());
 
-		res.addState(label::Label(0, j));
-		res.addFinalState(label::Label(0, j));
-		res.addTransition(label::Label(0), label::Label(0, j));
+		res.addState(DefaultStateType(0, j));
+		res.addFinalState(DefaultStateType(0, j));
+		res.addTransition(DefaultStateType(0), DefaultStateType(0, j));
 
 		int i = 1;
-		for(const alphabet::Symbol& symbol : text.getContent()) {
-			res.addState(label::Label(i, j));
-			res.addFinalState(label::Label(i, j));
+		for(const DefaultSymbolType& symbol : text.getContent()) {
+			res.addState(DefaultStateType(i, j));
+			res.addFinalState(DefaultStateType(i, j));
 
-			res.addTransition(label::Label(i-1, j), symbol, label::Label(i, j));
-			res.addTransition(label::Label(i-1, j), label::Label(i, j));
+			res.addTransition(DefaultStateType(i-1, j), symbol, DefaultStateType(i, j));
+			res.addTransition(DefaultStateType(i-1, j), DefaultStateType(i, j));
 			i++;
 		}
 		j++;
diff --git a/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp b/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp
index 8e12a8bfd1c005d9e81415b560ce50941914531f..255b022a57f3fa51efe0f7d7c54ba91368765bef 100644
--- a/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp
+++ b/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp
@@ -20,17 +20,17 @@ automaton::Automaton ExactNondeterministicSubsequenceAutomaton::construct(const
 }
 
 automaton::EpsilonNFA < > ExactNondeterministicSubsequenceAutomaton::construct(const string::LinearString < >& text) {
-	automaton::EpsilonNFA < > res(label::Label(0));
-	res.addFinalState(label::Label(0));
+	automaton::EpsilonNFA < > res(DefaultStateType(0));
+	res.addFinalState(DefaultStateType(0));
 	res.setInputAlphabet(text.getAlphabet());
 
 	int i = 1;
-	for(const alphabet::Symbol& symbol : text.getContent()) {
-		res.addState(label::Label(i));
-		res.addFinalState(label::Label(i));
+	for(const DefaultSymbolType& symbol : text.getContent()) {
+		res.addState(DefaultStateType(i));
+		res.addFinalState(DefaultStateType(i));
 
-		res.addTransition(label::Label(i-1), symbol, label::Label(i));
-		res.addTransition(label::Label(i-1), label::Label(i));
+		res.addTransition(DefaultStateType(i-1), symbol, DefaultStateType(i));
+		res.addTransition(DefaultStateType(i-1), DefaultStateType(i));
 		i++;
 	}
 	return res;
diff --git a/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp b/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp
index 5438524cb5dd7c4b4180924bbb7926e2894fdee3..bb92c67a8084fe6dd3cce6ea14f16eef8fe17aa0 100644
--- a/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp
+++ b/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp
@@ -20,22 +20,22 @@ automaton::Automaton ExactSubsequenceAutomaton::construct(const string::String&
 }
 
 automaton::DFA<> ExactSubsequenceAutomaton::construct(const string::LinearString < >& text) {
-	std::map<alphabet::Symbol, int> f;
-	for(const alphabet::Symbol& symbol : text.getAlphabet()) {
+	std::map<DefaultSymbolType, int> f;
+	for(const DefaultSymbolType& symbol : text.getAlphabet()) {
 		f[symbol] = 0;
 	}
 
-	automaton::DFA<> res(label::Label(0));
-	res.addFinalState(label::Label(0));
+	automaton::DFA<> res(DefaultStateType(0));
+	res.addFinalState(DefaultStateType(0));
 	res.setInputAlphabet(text.getAlphabet());
 
 	int i = 1;
-	for(const alphabet::Symbol& symbol : text.getContent()) {
-		res.addState(label::Label(i));
-		res.addFinalState(label::Label(i));
+	for(const DefaultSymbolType& symbol : text.getContent()) {
+		res.addState(DefaultStateType(i));
+		res.addFinalState(DefaultStateType(i));
 
 		for(int j = f[symbol]; j < i; j++) {
-			res.addTransition(label::Label(j), symbol, label::Label(i));
+			res.addTransition(DefaultStateType(j), symbol, DefaultStateType(i));
 		}
 		f[symbol] = i;
 		i++;
diff --git a/alib2algo/test-src/stringology/exact/stringMatchTest.cpp b/alib2algo/test-src/stringology/exact/stringMatchTest.cpp
index 92be072287dbbad61915e98631efa5fda41598e5..06fd7d387ce15790474888f6168a2c88f6e65d2d 100644
--- a/alib2algo/test-src/stringology/exact/stringMatchTest.cpp
+++ b/alib2algo/test-src/stringology/exact/stringMatchTest.cpp
@@ -16,8 +16,8 @@ void stringMatchTest::tearDown() {
 }
 
 void stringMatchTest::testStringMatch() {
-	string::LinearString < > linear1({alphabet::Symbol(0), alphabet::Symbol(1), alphabet::Symbol(2), alphabet::Symbol(3)});
-	string::LinearString < > linear2({alphabet::Symbol(1), alphabet::Symbol(2), alphabet::Symbol(3)});
+	string::LinearString < > linear1({DefaultSymbolType(0), DefaultSymbolType(1), DefaultSymbolType(2), DefaultSymbolType(3)});
+	string::LinearString < > linear2({DefaultSymbolType(1), DefaultSymbolType(2), DefaultSymbolType(3)});
 
 	CPPUNIT_ASSERT ( stringology::exact::ExactFactorMatch::match ( linear1, linear2 ).count ( 1 ) );
 }