diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.hxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.hxx
index 56fc6fdb1fb054f68eb9d575e4a97e4fc1bbaac3..fd68ccb4f96dafcbb952f653a76974f599b53f5e 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.hxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.hxx
@@ -26,7 +26,7 @@ void addRetTransition(const ext::set < ext::pair < StateType, StateType > > & fr
 
 template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
 void retInitial(const ext::set < ext::pair < StateType, StateType > > & state, const ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > & pdaSymbol, const ext::variant < EpsilonType, InputSymbolType>& input, const automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > >, ext::set < ext::pair < StateType, StateType > > > & deterministic, ext::map < ext::tuple < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType >, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > >, ext::set < ext::pair < StateType, StateType > > > & rubbishReturnTransitions ) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
 
 	ext::set<ext::pair<StateType, StateType>> S1;
 	for(const auto& entry : S) {
@@ -45,26 +45,21 @@ void retInitial(const ext::set < ext::pair < StateType, StateType > > & state, c
 		}
 	}
 
-	bool S1Empty = S1.empty();
-	auto to ( packToStateLabel ( std::move ( S1 ) ) );
-	if(S1Empty) {
-		ext::tuple < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType >, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > > key(state, input, pdaSymbol);
-		rubbishReturnTransitions.insert(std::make_pair(key, to));
-	} else {
-		addRetTransition(state, input, pdaSymbol, to, deterministic);
-	}
+	if ( S1.empty ( ) )
+		rubbishReturnTransitions.insert ( std::make_pair ( ext::make_tuple ( state, input, pdaSymbol ), std::move ( S1 ) ) );
+	else
+		addRetTransition ( state, input, pdaSymbol, std::move ( S1 ), deterministic );
 }
 
 template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
 void ret(const ext::set < ext::pair < StateType, StateType > > & state, const ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > & pdaSymbol, const ext::variant < EpsilonType, InputSymbolType > & input, const automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > >, ext::set < ext::pair < StateType, StateType > > > & deterministic, ext::map < ext::tuple < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType >, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > >, ext::set < ext::pair < StateType, StateType > > > & rubbishReturnTransitions) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
-	const ext::pair<ext::set < ext::pair < StateType, StateType > >, ext::variant<EpsilonType, InputSymbolType>> & pdaSymbolUnpack = unpackFromStackSymbol(pdaSymbol);
-	const ext::set<ext::pair<StateType, StateType>>& S1 = unpackFromStateLabel ( pdaSymbolUnpack.first );
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
+	const ext::set<ext::pair<StateType, StateType>>& S1 = pdaSymbol.first;
 
 	ext::set<ext::pair<StateType, StateType>> update;
 
 	for(const auto& transition : nondeterministic.getCallTransitions()) {
-		if(pdaSymbolUnpack.second != std::get<1>(transition.first)) continue;
+		if(pdaSymbol.second != std::get<1>(transition.first)) continue;
 
 		const StateType& q = std::get<0>(transition.first);
 		for(const auto& to : transition.second) {
@@ -103,14 +98,10 @@ void ret(const ext::set < ext::pair < StateType, StateType > > & state, const ex
 		}
 	}
 
-	bool S2Empty = S2.empty();
-	auto to ( packToStateLabel ( std::move ( S2 ) ) );
-	if(S2Empty) {
-		ext::tuple < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType >, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > > key(state, input, pdaSymbol);
-		rubbishReturnTransitions.insert(std::make_pair(key, to));
-	} else {
-		addRetTransition(state, input, pdaSymbol, to, deterministic);
-	}
+	if ( S2.empty ( ) )
+		rubbishReturnTransitions.insert(std::make_pair(ext::make_tuple(state, input, pdaSymbol), std::move ( S2 ) ) );
+	else
+		addRetTransition(state, input, pdaSymbol, std::move ( S2 ), deterministic);
 }
 
 template < class InputSymbolType, class EpsilonType, class StateType >
@@ -124,7 +115,7 @@ void addCallTransition(const ext::set < ext::pair < StateType, StateType > > & f
 
 template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
 void call(const ext::set < ext::pair < StateType, StateType > > & state, const ext::variant < EpsilonType, InputSymbolType > & input, const automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > >, ext::set < ext::pair < StateType, StateType > > > & deterministic, ext::map < ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > >, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > > > > & rubbishCallTransitions) {
-	const ext::set < ext::pair < StateType, StateType > > & S = unpackFromStateLabel(state);
+	const ext::set < ext::pair < StateType, StateType > > & S = state;
 
 	ext::set < StateType > R = retrieveDSubSet(S);
 	ext::set < StateType > R1;
@@ -142,14 +133,10 @@ void call(const ext::set < ext::pair < StateType, StateType > > & state, const e
 		}
 	}
 
-	bool R1Empty = R1.empty();
-	auto to = packToStateLabel(createIdentity(std::move(R1)));
-	auto push = packToStackSymbolLabel(ext::make_pair(state, input));
-	if(R1Empty) {
-		rubbishCallTransitions.insert(std::make_pair(ext::make_pair(state, input), ext::make_pair(to, push)));
-	} else {
-		addCallTransition(state, input, to, push, deterministic);
-	}
+	if ( R1.empty ( ) )
+		rubbishCallTransitions.insert(std::make_pair(ext::make_pair(state, input), ext::make_pair( createIdentity ( std::move ( R1 ) ), ext::make_pair(state, input))));
+	else
+		addCallTransition ( state, input, createIdentity ( std::move ( R1 ) ), ext::make_pair ( state, input ), deterministic);
 }
 
 template < class InputSymbolType, class EpsilonType, class StateType >
@@ -162,7 +149,7 @@ void addLocalTransition ( const ext::set < ext::pair < StateType, StateType > >
 
 template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
 void local(const ext::set < ext::pair < StateType, StateType > > & state, const ext::variant < EpsilonType, InputSymbolType > & input, const automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > >, ext::set < ext::pair < StateType, StateType > > > & deterministic, ext::map < ext::pair < ext::set < ext::pair < StateType, StateType > >, ext::variant < EpsilonType, InputSymbolType > >, ext::set < ext::pair < StateType, StateType > > > & rubbishLocalTransitions ) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
 	ext::set<ext::pair<StateType, StateType>> S1;
 
 	for(const auto& entry : S) {
@@ -180,13 +167,10 @@ void local(const ext::set < ext::pair < StateType, StateType > > & state, const
 		}
 	}
 
-	bool S1Empty = S1.empty();
-	auto to = packToStateLabel(std::move(S1));
-	if(S1Empty) {
-		rubbishLocalTransitions.insert(std::make_pair(ext::make_pair(state, input), to));
-	} else {
-		addLocalTransition(state, input, to, deterministic);
-	}
+	if ( S1.empty ( ) )
+		rubbishLocalTransitions.insert ( std::make_pair ( ext::make_pair ( state, input ), std::move ( S1 ) ) );
+	else
+		addLocalTransition ( state, input, std::move ( S1 ), deterministic );
 }
 
 template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
@@ -195,7 +179,7 @@ ext::tuple<ext::set<ext::variant<EpsilonType, InputSymbolType>>, ext::set<ext::v
 	ext::set<ext::variant<EpsilonType, InputSymbolType>> call;
 	ext::set<ext::variant<EpsilonType, InputSymbolType>> ret;
 
-	const ext::set<StateType> dSubSet = retrieveDSubSet(unpackFromStateLabel(state));
+	const ext::set<StateType> dSubSet = retrieveDSubSet(state);
 
 	for(const auto& transition : n.getLocalTransitions()) {
 		if(dSubSet.count(transition.first.first))
@@ -220,13 +204,13 @@ automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, ext::
 	using DeterministicStateType = ext::set < ext::pair < StateType, StateType > >;
 	using DeterministicPushdownStoreSymbolType = ext::pair < DeterministicStateType, ext::variant < EpsilonType, InputSymbolType > >;
 
-	DeterministicStateType initialLabel = packToStateLabel(createIdentity(n.getInitialStates()));
+	DeterministicStateType initialLabel = createIdentity(n.getInitialStates());
 	DeterministicPushdownStoreSymbolType bottom = ext::make_pair ( DeterministicStateType { }, ext::variant < EpsilonType, InputSymbolType > ( alphabet::BottomOfTheStackSymbol::instance < InputSymbolType > ( ) ) );
 
 	automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, DeterministicPushdownStoreSymbolType, DeterministicStateType > d ( initialLabel, bottom );
 	d.setInputAlphabet ( n.getInputAlphabet ( ) );
 
-	ext::set < DeterministicStateType > rubbishStates = { packToStateLabel < StateType > ({})};
+	ext::set < DeterministicStateType > rubbishStates = { DeterministicStateType { } };
 	ext::map < ext::tuple < DeterministicStateType, ext::variant<EpsilonType, InputSymbolType>, DeterministicPushdownStoreSymbolType >, DeterministicStateType > rubbishReturnTransitions;
 	ext::map < ext::pair < DeterministicStateType, ext::variant<EpsilonType, InputSymbolType>>, ext::pair < DeterministicStateType, DeterministicPushdownStoreSymbolType > > rubbishCallTransitions;
 	ext::map < ext::pair < DeterministicStateType, ext::variant<EpsilonType, InputSymbolType>>, DeterministicStateType > rubbishLocalTransitions;
@@ -273,7 +257,7 @@ automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, ext::
 
 	const ext::set<StateType>& finalLabels = n.getFinalStates();
 	for(const DeterministicStateType & state : d.getStates()) {
-		const ext::set<StateType> labels = retrieveDSubSet(unpackFromStateLabel(state));
+		const ext::set<StateType> labels = retrieveDSubSet(state);
 
 		if(!ext::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) {
 			d.addFinalState(state);
diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.hxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.hxx
index 88754c76bc59ed9d921d0a665e42c511af1a88a5..d21e605022c44b612d5fba40d8406b6998b057b1 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.hxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.hxx
@@ -26,7 +26,7 @@ void addRetTransition(const ext::set < ext::pair < StateType, StateType > > & fr
 
 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
 void retInitial ( const ext::set < ext::pair < StateType, StateType > > & state, const ext::pair < ext::set < ext::pair < StateType, StateType > >, InputSymbolType > & pdaSymbol, const InputSymbolType & input, const automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pair < StateType, StateType > >, InputSymbolType >, ext::set < ext::pair < StateType, StateType > > > & deterministic) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
 
 	ext::set<ext::pair<StateType, StateType>> S1;
 	for(const auto& entry : S) {
@@ -45,19 +45,18 @@ void retInitial ( const ext::set < ext::pair < StateType, StateType > > & state,
 		}
 	}
 
-	addRetTransition(state, input, pdaSymbol, packToStateLabel(std::move(S1)), deterministic);
+	addRetTransition(state, input, pdaSymbol, std::move(S1), deterministic);
 }
 
 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
 void ret(const ext::set < ext::pair < StateType, StateType > > & state, const ext::pair < ext::set < ext::pair < StateType, StateType > >, InputSymbolType > & pdaSymbol, const InputSymbolType & input, const automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pair < StateType, StateType > >, InputSymbolType >, ext::set < ext::pair < StateType, StateType > > > & deterministic) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
-	const ext::pair<ext::set<ext::pair<StateType, StateType>>, InputSymbolType> & pdaSymbolUnpack = unpackFromStackSymbol(pdaSymbol);
-	const ext::set<ext::pair<StateType, StateType>>& S1 = unpackFromStateLabel ( pdaSymbolUnpack.first );
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
+	const ext::set<ext::pair<StateType, StateType>>& S1 = pdaSymbol.first;
 
 	ext::set<ext::pair<StateType, StateType>> update;
 
 	for(const auto& transition : nondeterministic.getCallTransitions()) {
-		if(pdaSymbolUnpack.second != std::get<1>(transition.first)) continue;
+		if(pdaSymbol.second != std::get<1>(transition.first)) continue;
 
 		const StateType& q = std::get<0>(transition.first);
 		for(const auto& to : transition.second) {
@@ -96,7 +95,7 @@ void ret(const ext::set < ext::pair < StateType, StateType > > & state, const ex
 		}
 	}
 
-	addRetTransition(state, input, pdaSymbol, packToStateLabel(std::move(S2)), deterministic);
+	addRetTransition(state, input, pdaSymbol, std::move(S2), deterministic);
 }
 
 template < class InputSymbolType, class StateType >
@@ -110,7 +109,7 @@ void addCallTransition(const ext::set < ext::pair < StateType, StateType > > & f
 
 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
 void call(const ext::set < ext::pair < StateType, StateType > > & state, const InputSymbolType& input, const automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pair < StateType, StateType > >, InputSymbolType >, ext::set < ext::pair < StateType, StateType > > > & deterministic) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
 
 	ext::set<StateType> R = retrieveDSubSet(S);
 	ext::set<StateType> R1;
@@ -128,7 +127,7 @@ void call(const ext::set < ext::pair < StateType, StateType > > & state, const I
 		}
 	}
 
-	addCallTransition(state, input, packToStateLabel(createIdentity(std::move(R1))), packToStackSymbolLabel(ext::make_pair(state, input)), deterministic);
+	addCallTransition(state, input, createIdentity(std::move(R1)), ext::make_pair(state, input), deterministic);
 }
 
 template < class InputSymbolType, class StateType >
@@ -141,7 +140,7 @@ void addLocalTransition(const ext::set < ext::pair < StateType, StateType > > &
 
 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
 void local(const ext::set < ext::pair < StateType, StateType > > & state, const InputSymbolType& input, const automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > & nondeterministic, automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pair < StateType, StateType > >, InputSymbolType >, ext::set < ext::pair < StateType, StateType > > > & deterministic) {
-	const ext::set<ext::pair<StateType, StateType>> & S = unpackFromStateLabel(state);
+	const ext::set<ext::pair<StateType, StateType>> & S = state;
 	ext::set<ext::pair<StateType, StateType>> S1;
 
 	for(const auto& entry : S) {
@@ -159,7 +158,7 @@ void local(const ext::set < ext::pair < StateType, StateType > > & state, const
 		}
 	}
 
-	addLocalTransition(state, input, packToStateLabel(std::move(S1)), deterministic);
+	addLocalTransition(state, input, std::move(S1), deterministic);
 }
 
 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
@@ -167,7 +166,7 @@ automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pa
 	using DeterministicStateType = ext::set < ext::pair < StateType, StateType > >;
 	using DeterministicPushdownStoreSymbolType = ext::pair < DeterministicStateType, InputSymbolType >;
 
-	DeterministicStateType initialLabel = packToStateLabel(createIdentity(n.getInitialStates()));
+	DeterministicStateType initialLabel = createIdentity(n.getInitialStates());
 	DeterministicPushdownStoreSymbolType bottom = ext::make_pair ( DeterministicStateType { }, alphabet::BottomOfTheStackSymbol::instance < InputSymbolType > ( ) );
 
 	automaton::VisiblyPushdownDPDA < InputSymbolType, DeterministicPushdownStoreSymbolType, DeterministicStateType > d(initialLabel, bottom);
@@ -176,7 +175,7 @@ automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pa
 	d.setLocalInputAlphabet(n.getLocalInputAlphabet());
 	d.setReturnInputAlphabet(n.getReturnInputAlphabet());
 
-	ext::set < DeterministicStateType > rubbishStates = { packToStateLabel < StateType > ({})};
+	ext::set < DeterministicStateType > rubbishStates = { DeterministicStateType { } };
 	ext::map < ext::tuple < DeterministicStateType, InputSymbolType, DeterministicPushdownStoreSymbolType >, DeterministicStateType > rubbishReturnTransitions;
 	ext::map < ext::pair < DeterministicStateType, InputSymbolType>, ext::pair < DeterministicStateType, DeterministicPushdownStoreSymbolType > > rubbishCallTransitions;
 	ext::map < ext::pair < DeterministicStateType, InputSymbolType>, DeterministicStateType > rubbishLocalTransitions;
@@ -209,7 +208,7 @@ automaton::VisiblyPushdownDPDA < InputSymbolType, ext::pair < ext::set < ext::pa
 
 	const ext::set<StateType>& finalLabels = n.getFinalStates();
 	for(const DeterministicStateType & state : d.getStates()) {
-		const ext::set<StateType> labels = retrieveDSubSet(unpackFromStateLabel(state));
+		const ext::set<StateType> labels = retrieveDSubSet(state);
 
 		if(!ext::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) {
 			d.addFinalState(state);
diff --git a/alib2algo/src/automaton/determinize/common/RHDPDACommon.h b/alib2algo/src/automaton/determinize/common/RHDPDACommon.h
index b2f3a6d920934a795b09bb6ef3c483c764e25ece..b4c89f124fce94e30b92df1bc57ea7941cee5cbc 100644
--- a/alib2algo/src/automaton/determinize/common/RHDPDACommon.h
+++ b/alib2algo/src/automaton/determinize/common/RHDPDACommon.h
@@ -14,36 +14,6 @@ namespace automaton {
 
 namespace determinize {
 
-template < class StateType >
-ext::set<ext::pair<StateType, StateType>> packToStateLabel(ext::set<ext::pair<StateType, StateType>> data) {
-	return std::move ( data );
-}
-
-template < class StateType >
-const ext::set<ext::pair<StateType, StateType>> & unpackFromStateLabel(const ext::set<ext::pair<StateType, StateType>> & data) {
-	return data;
-}
-
-template < class StateType, class InputSymbolType >
-ext::pair<ext::set<ext::pair<StateType, StateType>>, InputSymbolType> packToStackSymbolLabel(ext::pair<ext::set<ext::pair<StateType, StateType>>, InputSymbolType> data) {
-	return std::move ( data );
-}
-
-template < class StateType, class InputSymbolType >
-const ext::pair<ext::set<ext::pair<StateType, StateType>>, InputSymbolType> & unpackFromStackSymbol(const ext::pair<ext::set<ext::pair<StateType, StateType>>, InputSymbolType> & symbol) {
-	return symbol;
-}
-
-template < class StateType, class EpsilonType, class InputSymbolType >
-ext::pair<ext::set<ext::pair<StateType, StateType>>, ext::variant<EpsilonType, InputSymbolType>> packToStackSymbolLabel(ext::pair<ext::set<ext::pair<StateType, StateType>>, ext::variant<EpsilonType, InputSymbolType>> data) {
-	return std::move ( data );
-}
-
-template < class StateType, class EpsilonType, class InputSymbolType >
-const ext::pair<ext::set<ext::pair<StateType, StateType>>, ext::variant<EpsilonType, InputSymbolType>> & unpackFromStackSymbol(const ext::pair<ext::set<ext::pair<StateType, StateType>>, ext::variant<EpsilonType, InputSymbolType>> & symbol) {
-	return symbol;
-}
-
 template < class StateType >
 ext::set<StateType> retrieveDSubSet(const ext::set<ext::pair<StateType, StateType>>& localOperation) {
 	ext::set<StateType> id;
@@ -76,7 +46,7 @@ ext::set<ext::set<ext::pair<StateType,StateType>>> existsDirtyState(const T& d,
 	localTransitions.insert(rubbishLocalTransitions.begin(), rubbishLocalTransitions.end());
 
 	for(const ext::set<ext::pair<StateType,StateType>>& state : states) {
-		const ext::set<StateType> dSubSet = retrieveDSubSet(unpackFromStateLabel(state));
+		const ext::set<StateType> dSubSet = retrieveDSubSet(state);
 
 		bool originalCallsLocals = false;
 		for(const auto& transition : n.getCallTransitions()) {
@@ -134,7 +104,7 @@ void localClosure(ext::set<DeterministicStateType>& states, const ext::set<Deter
 			const auto& popSymbol = std::get<2>(transition.first);
 			if(popSymbol == d.getBottomOfTheStackSymbol()) continue;
 
-			const DeterministicStateType & statePart = unpackFromStackSymbol ( popSymbol ).first;
+			const DeterministicStateType & statePart = popSymbol.first;
 
 			if(!states.count(statePart)) {
 				states.insert(statePart);
@@ -162,7 +132,7 @@ ext::set<ext::pair<DeterministicStateType, DeterministicPushdownStoreSymbolType>
 
 	for(const DeterministicStateType& state : states) {
 		bool originalPops = false;
-		auto dSubSet = retrieveDSubSet(unpackFromStateLabel(state));
+		auto dSubSet = retrieveDSubSet(state);
 
 		for(const auto& transition : n.getReturnTransitions()) {
 			if(dSubSet.count(std::get<0>(transition.first))) {