diff --git a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
index da08b34a96110d760db904d70e2a5fa50a5e7fd7..761605ad6f4f290ab27b2d73e8f5df18e3e88545 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
@@ -63,7 +63,7 @@ automaton::InputDrivenDPDA < > Determinize::determinize ( const automaton::Input
 	for ( const DefaultStateType & dfaState : res.getStates ( ) ) {
 		const std::set < DefaultStateType > & nfaStates = recreateNFAStates ( dfaState );
 
-		if(!std::excludes(finalLabels.begin(), finalLabels.end(), nfaStates.begin(), nfaStates.end()))
+		if(!ext::excludes(finalLabels.begin(), finalLabels.end(), nfaStates.begin(), nfaStates.end()))
 			res.addFinalState ( dfaState );
 	}
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx
index 3947a860d59640b3d9f8a0383c11f93d67ceb669..9111d7a8cba8012d24fce79b26f7b33f43bddf2e 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx
@@ -59,7 +59,7 @@ automaton::DFA < SymbolType, std::set < StateType > > Determinize::determinize (
 	 // 5
 	const std::set < StateType > & finalLabels = nfa.getFinalStates();
 	for ( const std::set < StateType > & dfaState : res.getStates ( ) )
-		if ( ! std::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) )
+		if ( ! ext::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) )
 			res.addFinalState ( dfaState );
 
 	return res;
@@ -107,7 +107,7 @@ automaton::DFA < SymbolType, std::set < StateType > > Determinize::determinize (
 	 // 5
 	const std::set < StateType > & finalLabels = nfa.getFinalStates();
 	for ( const std::set < StateType > & dfaState : res.getStates ( ) )
-		if ( ! std::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) )
+		if ( ! ext::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) )
 			res.addFinalState ( dfaState );
 
 	return res;
diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
index 7c2a496509ae853f1a5887294cea1696838a5651..3befb73c9943ffc099ce6dbf074fd88cb33a5b06 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
@@ -262,7 +262,7 @@ automaton::RealTimeHeightDeterministicDPDA < > Determinize::determinize(const au
 	for(const DefaultStateType& state : d.getStates()) {
 		const std::set<DefaultStateType> labels = retrieveDSubSet(unpackFromStateLabel(state));
 
-		if(!std::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) {
+		if(!ext::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) {
 			d.addFinalState(state);
 		}
 	}
diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
index 39ea6c3c636d4a51e78d30765c13b7816893db06..98ef78cd9e3a1eff3437f22ad106c6e59475f513 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
@@ -197,7 +197,7 @@ automaton::VisiblyPushdownDPDA < > Determinize::determinize(const automaton::Vis
 	for(const DefaultStateType& state : d.getStates()) {
 		const std::set<DefaultStateType> labels = retrieveDSubSet(unpackFromStateLabel(state));
 
-		if(!std::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) {
+		if(!ext::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) {
 			d.addFinalState(state);
 		}
 	}
diff --git a/alib2algo/src/grammar/generate/RandomizeGrammar.h b/alib2algo/src/grammar/generate/RandomizeGrammar.h
index fc81ebced36a16d19e983c11dfeace34ffc70444..2260101e70f19422d840f3951aac7192c49ee220 100644
--- a/alib2algo/src/grammar/generate/RandomizeGrammar.h
+++ b/alib2algo/src/grammar/generate/RandomizeGrammar.h
@@ -127,7 +127,7 @@ grammar::CFG < SymbolType > RandomizeGrammar::randomize ( const grammar::CFG < S
 
 	for ( const std::pair < SymbolType, std::set < std::vector < SymbolType > > > & rule : gram.getRules ( ) )
 		for ( const std::vector < SymbolType > & rhs : rule.second )
-			res.addRule ( symbolPermutationMap.find ( rule.first )->second, std::transform < SymbolType > ( rhs, [ & ] ( const SymbolType & elem ) {
+			res.addRule ( symbolPermutationMap.find ( rule.first )->second, ext::transform < SymbolType > ( rhs, [ & ] ( const SymbolType & elem ) {
 						if ( gram.getNonterminalAlphabet ( ).count ( elem ) )
 							return symbolPermutationMap.find ( elem )->second;
 						else
diff --git a/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp b/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp
index 977a982d1c3263cc478d1d664bf8bad81e0623e7..86906d5486827e31ea7fcb3c3c151e319c148f7d 100644
--- a/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp
+++ b/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp
@@ -28,7 +28,7 @@ automaton::NPDA < > ToPostfixPushdownAutomatonGlushkov::convert ( const rte::RTE
 }
 
 std::vector < DefaultSymbolType > phi ( const std::vector < common::ranked_symbol < > > & follow ) {
-	return std::transform < DefaultSymbolType > ( follow, []( const common::ranked_symbol < > & symbol ) { return DefaultSymbolType ( alphabet::RankedSymbol < > ( symbol ) ); } );
+	return ext::transform < DefaultSymbolType > ( follow, []( const common::ranked_symbol < > & symbol ) { return DefaultSymbolType ( alphabet::RankedSymbol < > ( symbol ) ); } );
 }
 
 bool isSubstSymbolPresent ( const std::set < common::ranked_symbol < > > & container, const std::set < common::ranked_symbol < > > & substAlphabet ) {
diff --git a/alib2cli/src/parser/Parser.h b/alib2cli/src/parser/Parser.h
index 279f1e22668700d2495f601e2ae31840783c8476..1b502579038f6a37eacb4453a5c2d61860e8dc8f 100644
--- a/alib2cli/src/parser/Parser.h
+++ b/alib2cli/src/parser/Parser.h
@@ -26,7 +26,7 @@ public:
 	template < class ... Tokens >
 	bool check ( Tokens ... tokens ) const {
 		// TODO repace in c++17 with fold expressions
-		return std::orAll ( m_current.m_type == tokens ... );
+		return ext::orAll ( m_current.m_type == tokens ... );
 	}
 
 	bool check_nonreserved_kw ( const std::string & kw ) const {
diff --git a/alib2common/src/common/createUnique.hpp b/alib2common/src/common/createUnique.hpp
index 2e89d88817050a9f11aa26a08d8d072fe92f0f7c..cd6487d66a923a4bb2718f8386a47404252c8840 100644
--- a/alib2common/src/common/createUnique.hpp
+++ b/alib2common/src/common/createUnique.hpp
@@ -30,7 +30,7 @@ typename std::enable_if < std::all_same < std::set < T >, Alphabets ... >::value
 
 	do {
 		// TODO repace in c++17 with fold expressions
-		if ( std::andAll ( alphabets.count ( attempt ) == 0 ... ) )
+		if ( ext::andAll ( alphabets.count ( attempt ) == 0 ... ) )
 			return attempt;
 
 		++attempt;
diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h
index e1c0c58e649d629a303ee0c963f01b44ce65f340..c86c3ab04a5f82643787e64c705f7f24a8f3f703 100644
--- a/alib2data/src/automaton/PDA/DPDA.h
+++ b/alib2data/src/automaton/PDA/DPDA.h
@@ -552,7 +552,7 @@ public:
 		for (const std::pair<const std::tuple<StateType, ext::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : automaton.getTransitions()) {
 			const auto & popSymbols = std::get<2>(transition.first);
 			const auto & pushSymbols = transition.second.second;
-			if(std::contains(popSymbols.begin(), popSymbols.end(), symbol ) || std::contains(pushSymbols.begin(), pushSymbols.end(), symbol))
+			if(ext::contains(popSymbols.begin(), popSymbols.end(), symbol ) || ext::contains(pushSymbols.begin(), pushSymbols.end(), symbol))
 				return true;
 		}
 
diff --git a/alib2data/src/automaton/TA/DFTA.h b/alib2data/src/automaton/TA/DFTA.h
index 1c6bfc06e37617fdb3dd4a42c2488cad2fec0532..a23e8e30c81afcaa77acf1cc790d4b366c5f2e3f 100644
--- a/alib2data/src/automaton/TA/DFTA.h
+++ b/alib2data/src/automaton/TA/DFTA.h
@@ -358,7 +358,7 @@ public:
 			return true;
 
 		for (const std::pair<const std::pair<common::ranked_symbol < SymbolType, RankType >, std::vector<StateType> >, StateType>& t : automaton.getTransitions())
-			if(std::contains(t.first.second.begin(), t.first.second.end(), state ) || t.second == state)
+			if(ext::contains(t.first.second.begin(), t.first.second.end(), state ) || t.second == state)
 				return true;
 
 		return false;
diff --git a/alib2data/src/automaton/TA/NFTA.h b/alib2data/src/automaton/TA/NFTA.h
index b2e550f7b8e3f2c12bbd1e4e90c88f77d92edbb1..5a3624f08f1a68ca63825fcca0604aeeb5916a9f 100644
--- a/alib2data/src/automaton/TA/NFTA.h
+++ b/alib2data/src/automaton/TA/NFTA.h
@@ -410,7 +410,7 @@ public:
 			return true;
 
 		for (const std::pair<const std::pair<common::ranked_symbol < SymbolType, RankType >, std::vector<StateType> >, std::set<StateType>>& t : automaton.getTransitions())
-			if(std::contains(t.first.second.begin(), t.first.second.end(), state ) || t . second.count ( state ) )
+			if(ext::contains(t.first.second.begin(), t.first.second.end(), state ) || t . second.count ( state ) )
 				return true;
 
 		return false;
diff --git a/alib2data/src/tree/common/TreeAuxiliary.h b/alib2data/src/tree/common/TreeAuxiliary.h
index 74370036c96fc0646d76ff84ee6fe01d2bd14eee..b19b9e083e88f38ebc242b8fa8d25a4f92f9a6c9 100644
--- a/alib2data/src/tree/common/TreeAuxiliary.h
+++ b/alib2data/src/tree/common/TreeAuxiliary.h
@@ -37,14 +37,14 @@ public:
 
 template < class SymbolType, class RankType >
 std::set < SymbolType > TreeAuxiliary::unrankSymbols ( const std::set < common::ranked_symbol < SymbolType, RankType > > & alphabet ) {
-	return std::transform < SymbolType > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) {
+	return ext::transform < SymbolType > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) {
 			return symbol.getSymbol ( );
 	} );
 }
 
 template < class SymbolType, class RankType >
 std::set < common::ranked_symbol < SymbolType, RankType > > TreeAuxiliary::computeBars ( const std::set < common::ranked_symbol < SymbolType, RankType > > & alphabet, const SymbolType & barBase ) {
-	return std::transform < common::ranked_symbol < SymbolType, RankType > > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) {
+	return ext::transform < common::ranked_symbol < SymbolType, RankType > > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) {
 			return common::ranked_symbol < SymbolType, RankType > ( barBase, symbol.getRank ( ) );
 	} );
 }
diff --git a/alib2std/src/extensions/algorithm.hpp b/alib2std/src/extensions/algorithm.hpp
index 9e0b1799787a522ff01abd1bd5f767ca72abb635..34da27e717cdc7941b4f6b0ceff538b39cc3837c 100644
--- a/alib2std/src/extensions/algorithm.hpp
+++ b/alib2std/src/extensions/algorithm.hpp
@@ -11,7 +11,7 @@
 #include <algorithm>
 #include <functional>
 
-namespace std {
+namespace ext {
 
 template<class InputIt1, class InputIt2, class Compare>
 bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, Compare comp) {
@@ -77,6 +77,6 @@ inline bool orAll ( T value, Ts ... other ) {
 	return value || orAll ( other ... );
 }
 
-} /* namespace std */
+} /* namespace ext */
 
 #endif /* __ALGORITHM_HPP_ */
diff --git a/alib2std/test-src/extensions/AlgorithmTest.cpp b/alib2std/test-src/extensions/AlgorithmTest.cpp
index 7037d6dc073f2e02ebe31955c93c59fa8bde6f9a..829fb7e590d701e68431b716088bf814f758f0d8 100644
--- a/alib2std/test-src/extensions/AlgorithmTest.cpp
+++ b/alib2std/test-src/extensions/AlgorithmTest.cpp
@@ -18,34 +18,34 @@ void AlgorithmTest::testExclude() {
 
 		std::cout << sizeof(array1) / sizeof(int);
 
-		CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false);
+		CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false);
 	}
 
 	{
 		int array1[] = {1, 3, 5};
 		int array2[] = {2, 4, 6, 8};
 
-		CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true);
-		CPPUNIT_ASSERT(std::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true);
+		CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true);
+		CPPUNIT_ASSERT(ext::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true);
 	}
 
 	{
 		int array1[] = {1, 3, 5, 8};
 		int array2[] = {2, 4, 6, 8};
 
-		CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false);
-		CPPUNIT_ASSERT(std::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == false);
+		CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false);
+		CPPUNIT_ASSERT(ext::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == false);
 	}
 
 	{
 		int array1[] = {0};
 		int array2[] = {2, 4, 6, 8};
 
-		CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true);
-		CPPUNIT_ASSERT(std::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true);
+		CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true);
+		CPPUNIT_ASSERT(ext::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true);
 
-		CPPUNIT_ASSERT(std::excludes(array1, array1, array2, array2) == true);
-		CPPUNIT_ASSERT(std::excludes(array2, array2, array1, array1) == true);
+		CPPUNIT_ASSERT(ext::excludes(array1, array1, array2, array2) == true);
+		CPPUNIT_ASSERT(ext::excludes(array2, array2, array1, array1) == true);
 	}
 }
 
@@ -54,9 +54,9 @@ void AlgorithmTest::testTransform() {
 	std::set<long> ref = {2, 3, 4, 5};
 
 /*	std::function<long(const int&)> lamb = [](const int& elem) { return (long) elem + 1; };
-	std::set<long> out = std::transform<long>(in, lamb); //*/
+	std::set<long> out = ext::transform<long>(in, lamb); //*/
 
-	std::set<long> out = std::transform<long>(in, [](const int& elem) { return (long) elem + 1; });
+	std::set<long> out = ext::transform<long>(in, [](const int& elem) { return (long) elem + 1; });
 
 	CPPUNIT_ASSERT(ref == out);
 }