diff --git a/aaccess2/src/aaccess.cpp b/aaccess2/src/aaccess.cpp
index dacb61676e48413c275fa57a080f50aa2c2a3cf9..fb0f415ab86d8a8c397f05ec469b12e32070f32b 100644
--- a/aaccess2/src/aaccess.cpp
+++ b/aaccess2/src/aaccess.cpp
@@ -215,7 +215,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/aarbology2/src/aarbology.cpp b/aarbology2/src/aarbology.cpp
index 3a020142e9ec3c0ac28406c40fb210193a5ece50..29621e213e5a0efe9f76778f25a4e9f29ddc5ea4 100644
--- a/aarbology2/src/aarbology.cpp
+++ b/aarbology2/src/aarbology.cpp
@@ -228,7 +228,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/acompaction2/src/acompaction.cpp b/acompaction2/src/acompaction.cpp
index 7988e0e8419a376da7a531d25f9f5756e0843575..c68f3b759a408264af7278c38744e0e6cf6378b1 100644
--- a/acompaction2/src/acompaction.cpp
+++ b/acompaction2/src/acompaction.cpp
@@ -67,7 +67,7 @@ int main(int argc, char** argv) {
 		alib::XmlDataFactory::toStdout(exception);
 		return 1;
 	} catch(const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch(...) {
 		return 127;
diff --git a/acompare2/src/acompare.cpp b/acompare2/src/acompare.cpp
index f45b898e3453517f38b1ca7ec1295bcf59faa779..e99503732b9e881ac80adf7061d3af399d71645f 100644
--- a/acompare2/src/acompare.cpp
+++ b/acompare2/src/acompare.cpp
@@ -80,7 +80,7 @@ int main ( int argc, char * * argv ) {
 		std::string result = std::dynamic_pointer_cast < abstraction::ValueProvider < std::string > > ( environment.getVariable ( "output" ) )->getValue ( true );
 
 		if ( result != "" )
-			std::cout << result << std::endl;
+			common::Streams::out << result << std::endl;
 
 		measurements::end ( );
 		measurements::end ( );
diff --git a/aepsilon2/src/aepsilon.cpp b/aepsilon2/src/aepsilon.cpp
index 8101346466a65d5bfe5c86a2fca60a0b865ca0ee..0c2206f24297ec3fd3813846891560ea53629f52 100644
--- a/aepsilon2/src/aepsilon.cpp
+++ b/aepsilon2/src/aepsilon.cpp
@@ -96,7 +96,7 @@ int main(int argc, char** argv) {
 		alib::XmlDataFactory::toStdout(exception);
 		return 1;
 	} catch(const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/agenerate2/src/agenerate.cpp b/agenerate2/src/agenerate.cpp
index 2c6ab11256138f40b1627d5cff833a1f3f513bab..47e2cba74804bfada87a1d38afe8d0a5316fb36c 100644
--- a/agenerate2/src/agenerate.cpp
+++ b/agenerate2/src/agenerate.cpp
@@ -106,7 +106,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/aintegral2/src/aintegral.cpp b/aintegral2/src/aintegral.cpp
index 71397201753589acff0b0de0e08329584b475322..b458a14e10442446d8cf1812296d836230e0ac82 100644
--- a/aintegral2/src/aintegral.cpp
+++ b/aintegral2/src/aintegral.cpp
@@ -75,7 +75,7 @@ int main(int argc, char** argv) {
 		alib::XmlDataFactory::toStdout(exception);
 		return 1;
 	} catch(const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/alangop2/src/alangop.cpp b/alangop2/src/alangop.cpp
index 46f2018c446d558abdc57a6cca2d039c0402f6db..340ab5aacf295d07c99974966751d74c277c6244 100644
--- a/alangop2/src/alangop.cpp
+++ b/alangop2/src/alangop.cpp
@@ -107,7 +107,7 @@ int main(int argc, char* argv[]) {
 		alib::XmlDataFactory::toStdout( exception );
 		return 1;
 	} catch(const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/alib2algo/src/automaton/determinize/common/NFACommon.cpp b/alib2algo/src/automaton/determinize/common/NFACommon.cpp
index bcbc44456b27013bccff3ddd7ddafa5b5de0f6d9..db5d6cf32b78f3f830bc85f3290f05de2f5c0f03 100644
--- a/alib2algo/src/automaton/determinize/common/NFACommon.cpp
+++ b/alib2algo/src/automaton/determinize/common/NFACommon.cpp
@@ -21,7 +21,7 @@ DefaultStateType createDFAState ( ext::set < DefaultStateType > nfaStates ) {
 }
 
 const ext::set < DefaultStateType > & recreateNFAStates ( const DefaultStateType & dfaState ) {
-	 // std::cout << dfaState << std::endl;
+	 // common::Streams::out << dfaState << std::endl;
 	return static_cast < const DefaultStatesSetType & > ( dfaState.getData ( ) );
 }
 
diff --git a/alib2algo/src/regexp/simplify/RegExpOptimizeUnboundedPart.hpp b/alib2algo/src/regexp/simplify/RegExpOptimizeUnboundedPart.hpp
index 4149f6f76bf84b139af82550fab9af6a7ffc723b..ba743ec80f0e85fd92d36141a58a34f5ef3a67e4 100644
--- a/alib2algo/src/regexp/simplify/RegExpOptimizeUnboundedPart.hpp
+++ b/alib2algo/src/regexp/simplify/RegExpOptimizeUnboundedPart.hpp
@@ -877,10 +877,10 @@ bool RegExpOptimize::V9( UnboundedRegExpConcatenation < SymbolType > & node ) {
 			continue;
 		}
 
-		// std::cout << "xy" << std::endl;
+		// common::Streams::out << "xy" << std::endl;
 		// UnboundedRegExpConcatenation < SymbolType >* tmp = new UnboundedRegExpConcatenation < SymbolType >( );
 		// tmp->insert( tmp->getChildren().end( ), std::next( it ), c1Iter );
-		// std::cout << RegExp( tmp ) << std::endl;
+		// common::Streams::out << RegExp( tmp ) << std::endl;
 
 		// copy the range <it;sth>, delete it and go back to the iter node
 		ext::vector<ext::smart_ptr < UnboundedRegExpElement < SymbolType > > > copyRange;
diff --git a/alib2algo/src/string/properties/BadCharacterShiftTable.h b/alib2algo/src/string/properties/BadCharacterShiftTable.h
index 2683572f1dc8be367485e391b01ac69b836b908d..fb51c4291077d1ddf507b4e9599a55afba751dbe 100644
--- a/alib2algo/src/string/properties/BadCharacterShiftTable.h
+++ b/alib2algo/src/string/properties/BadCharacterShiftTable.h
@@ -47,9 +47,9 @@ ext::map<SymbolType, size_t> BadCharacterShiftTable::bcs(const string::LinearStr
 
 	/*
 	for(const auto& kv: bcs)
-		std::cout << std::string(kv.first) << " " << kv.second << std::endl;
+		common::Streams::out << std::string(kv.first) << " " << kv.second << std::endl;
 	for(const auto& s: string.getContent())
-		std::cout << std::string(s);std::cout << std::endl;
+		common::Streams::out << std::string(s);common::Streams::out << std::endl;
 	*/
 
 	return bcs;
diff --git a/alib2algo/src/stringology/exact/BoyerMoore.h b/alib2algo/src/stringology/exact/BoyerMoore.h
index 86d699bc3ce9a3a92a7f443727d12f6fdca79909..e134f1eb34e6da9d3176ad0e0adf90467c30fda7 100644
--- a/alib2algo/src/stringology/exact/BoyerMoore.h
+++ b/alib2algo/src/stringology/exact/BoyerMoore.h
@@ -56,7 +56,7 @@ ext::set<unsigned> BoyerMoore::match(const string::LinearString < SymbolType >&
 		// Yay, there is match!!!
 		if(i == 0) occ.insert(haystack_offset);
 		haystack_offset += std::max ( bcs[string.getContent()[haystack_offset + pattern.getContent().size() - 1]], gss [ pattern.getContent ( ).size ( ) - i ] );
-		//std::cout << haystack_offset << std::endl;
+		//common::Streams::out << haystack_offset << std::endl;
 	}
 	measurements::end ( );
 
diff --git a/alib2algo/src/stringology/exact/BoyerMooreHorspool.h b/alib2algo/src/stringology/exact/BoyerMooreHorspool.h
index e0eb289532978d27868369aaecf8e6905bcae228..f519160bb6b62c4e2f2c6ac6e14f85d330255dcb 100644
--- a/alib2algo/src/stringology/exact/BoyerMooreHorspool.h
+++ b/alib2algo/src/stringology/exact/BoyerMooreHorspool.h
@@ -54,7 +54,7 @@ ext::set<unsigned> BoyerMooreHorspool::match(const string::LinearString < Symbol
 		// Yay, there is match!!!
 		if(i == 0) occ.insert(haystack_offset);
 		haystack_offset += bcs[string.getContent()[haystack_offset + pattern.getContent().size() - 1]];
-		//std::cout << haystack_offset << std::endl;
+		//common::Streams::out << haystack_offset << std::endl;
 	}
 	measurements::end ( );
 
diff --git a/alib2algo/src/stringology/exact/ReversedBoyerMooreHorspool.h b/alib2algo/src/stringology/exact/ReversedBoyerMooreHorspool.h
index 9d74fe054a55041d938633faeac432f275e34382..7eca1b042ba95948a41bb075ea9c406c06a3b1cb 100644
--- a/alib2algo/src/stringology/exact/ReversedBoyerMooreHorspool.h
+++ b/alib2algo/src/stringology/exact/ReversedBoyerMooreHorspool.h
@@ -52,7 +52,7 @@ ext::set < unsigned > ReversedBoyerMooreHorspool::match ( const string::LinearSt
 
 		haystack_offset -= bcs[string.getContent ( )[haystack_offset]];
 
-		// std::cout << haystack_offset << std::endl;
+		// common::Streams::out << haystack_offset << std::endl;
 	}
 
 	return occ;
diff --git a/alib2algo/src/tree/generate/RandomTreeFactory.cpp b/alib2algo/src/tree/generate/RandomTreeFactory.cpp
index 6603529287216b786c7f26c6d09e2b95749adcd3..154692440dab5a1b8b4326bc6a88417ac7b88a59 100644
--- a/alib2algo/src/tree/generate/RandomTreeFactory.cpp
+++ b/alib2algo/src/tree/generate/RandomTreeFactory.cpp
@@ -183,7 +183,7 @@ struct Node {
 		}
 	}
 
-	void nicePrint ( std::ostream & os = std::cout, const std::string & prefix = "", const bool last = true ) const {
+	void nicePrint ( std::ostream & os = common::Streams::out, const std::string & prefix = "", const bool last = true ) const {
 		os << prefix;
 
 		std::string nextPrefix ( prefix );
diff --git a/alib2algo_experimental/src/graph/generate/RandomGraphFactory.cpp b/alib2algo_experimental/src/graph/generate/RandomGraphFactory.cpp
index b07e5e7bc7399270bb0634526da6ab1bdb8b292c..888c711261a1ecd1433ff204e3fc20672b473d50 100644
--- a/alib2algo_experimental/src/graph/generate/RandomGraphFactory.cpp
+++ b/alib2algo_experimental/src/graph/generate/RandomGraphFactory.cpp
@@ -17,7 +17,7 @@
 #include "../datastructs/Array.h"
 
 #ifndef NDEBUG
-#define GEN_GRAPH(x) std::cout << x << std::endl;
+#define GEN_GRAPH(x) common::Streams::out << x << std::endl;
 #else
 #define GEN_GRAPH(x)
 #endif
diff --git a/alib2algo_experimental/src/graph/isomorphism/HopcroftDebug.h b/alib2algo_experimental/src/graph/isomorphism/HopcroftDebug.h
index caf1ce258d84d0a4bc5b26a5fff075a58f834f79..60ab79ef286751db352f701360ba1d3779f0c09c 100644
--- a/alib2algo_experimental/src/graph/isomorphism/HopcroftDebug.h
+++ b/alib2algo_experimental/src/graph/isomorphism/HopcroftDebug.h
@@ -11,7 +11,7 @@
 #ifndef NDEBUG
 #include <cassert>
 #define H_ASSERT(x) assert(x)
-#define H_DEBUG(x) std::cout << std::boolalpha << x << std::endl
+#define H_DEBUG(x) common::Streams::out << std::boolalpha << x << std::endl
 #else
 #define H_ASSERT(x)
 #define H_DEBUG(str)
diff --git a/alib2algo_experimental/src/graph/isomorphism/HopcroftGraph.cpp b/alib2algo_experimental/src/graph/isomorphism/HopcroftGraph.cpp
index e934d287b297793157cf87a10b28947680cfb849..8c0a4c7563a14b85c72c51f907b79f4911557411 100644
--- a/alib2algo_experimental/src/graph/isomorphism/HopcroftGraph.cpp
+++ b/alib2algo_experimental/src/graph/isomorphism/HopcroftGraph.cpp
@@ -530,39 +530,39 @@ void Graph::init(const UndirectedGraph &graph)
 
 void Graph::dump()
 {
-	std::cout << std::endl;
-	std::cout << "Vertices: " << vertices.size();
-	std::cout << " Edges: " << edge_ends.size() / 2;
-	std::cout << std::endl;
+	common::Streams::out << std::endl;
+	common::Streams::out << "Vertices: " << vertices.size();
+	common::Streams::out << " Edges: " << edge_ends.size() / 2;
+	common::Streams::out << std::endl;
 	for (Vertex *v : vertices) {
-		std::cout << v->dump() << "(" << v->degree << "):";
+		common::Streams::out << v->dump() << "(" << v->degree << "):";
 		v->forEachEdge([this](EdgeEnd *e) {
-			std::cout << e->dump() << " (" << std::distance(edge_ends.begin(), std::find(edge_ends.begin(), edge_ends.end(), e)) << ")";
+			common::Streams::out << e->dump() << " (" << std::distance(edge_ends.begin(), std::find(edge_ends.begin(), edge_ends.end(), e)) << ")";
 			return true;
 		});
-		std::cout << std::endl;
+		common::Streams::out << std::endl;
 	}
-	std::cout << std::endl;
+	common::Streams::out << std::endl;
 }
 
 void Graph::dumpLabels()
 {
-	std::cout << std::endl;
-	std::cout << "Vertices:" << std::endl;
+	common::Streams::out << std::endl;
+	common::Streams::out << "Vertices:" << std::endl;
 	for (Vertex *v : vertices)
-		std::cout << " " << v->vlabel;
-	std::cout << std::endl;
+		common::Streams::out << " " << v->vlabel;
+	common::Streams::out << std::endl;
 
-	std::cout << "Edges:" << std::endl;
+	common::Streams::out << "Edges:" << std::endl;
 	for (Vertex *v : vertices) {
-		std::cout << v->dump() << ":";
+		common::Streams::out << v->dump() << ":";
 		v->forEachEdge([](EdgeEnd *e) {
-			std::cout << " " << e->elabel << "-" << e->otheredge->elabel;
+			common::Streams::out << " " << e->elabel << "-" << e->otheredge->elabel;
 			return true;
 		});
-		std::cout << std::endl;
+		common::Streams::out << std::endl;
 	}
-	std::cout << std::endl;
+	common::Streams::out << std::endl;
 }
 
 Vertex::Vertex()
diff --git a/alib2algo_experimental/src/graph/isomorphism/HopcroftImpl.cpp b/alib2algo_experimental/src/graph/isomorphism/HopcroftImpl.cpp
index 4c22ecde4c0f906d2d9e4375ec4a937195b49d6f..ac9d4d65737b72fe4e011396245d2ac45fd8f271 100644
--- a/alib2algo_experimental/src/graph/isomorphism/HopcroftImpl.cpp
+++ b/alib2algo_experimental/src/graph/isomorphism/HopcroftImpl.cpp
@@ -1484,19 +1484,19 @@ bool HopcroftImpl::isomorphism_mapping(ext::unordered_map<Vertex*, Vertex*> &map
 
 void HopcroftImpl::dumpGraphs()
 {
-	std::cout << "G1:";
+	common::Streams::out << "G1:";
 	m_g1->dump();
 
-	std::cout << "G2:";
+	common::Streams::out << "G2:";
 	m_g2->dump();
 }
 
 void HopcroftImpl::dumpLabels()
 {
-	std::cout << "G1:";
+	common::Streams::out << "G1:";
 	m_g1->dumpLabels();
 
-	std::cout << "G2:";
+	common::Streams::out << "G2:";
 	m_g2->dumpLabels();
 }
 
diff --git a/alib2aux/src/access/ExceptionAccess.cpp b/alib2aux/src/access/ExceptionAccess.cpp
index 8067d00cf71fb0dde275d3222ce7bbf7b521b4ef..9d0f93685027adb33913131e56ffb4a3a2b9371a 100644
--- a/alib2aux/src/access/ExceptionAccess.cpp
+++ b/alib2aux/src/access/ExceptionAccess.cpp
@@ -20,17 +20,17 @@ namespace dataAccess {
 
 void ExceptionAccess::access ( const exception::CommonException & exception, const ExceptionSettings::Settings & settings, const OperationSettings::Settings & operation ) {
 	if ( settings == ExceptionSettings::Settings::CAUSE && operation == OperationSettings::Settings::GET ) {
-		std::cout << exception.getCause ( );
+		common::Streams::out << exception.getCause ( );
 		return;
 	}
 
 	if ( settings == ExceptionSettings::Settings::BACKTRACE && operation == OperationSettings::Settings::GET ) {
-		std::cout << exception.getBacktrace ( );
+		common::Streams::out << exception.getBacktrace ( );
 		return;
 	}
 
 	if ( settings == ExceptionSettings::Settings::COMMAND && operation == OperationSettings::Settings::GET ) {
-		std::cout << exception.getCommand ( );
+		common::Streams::out << exception.getCommand ( );
 		return;
 	}
 
diff --git a/alib2cli/src/builtin/WriteFile.cpp b/alib2cli/src/builtin/WriteFile.cpp
index b6369141f509262c2ce825fcebf31d68cf29acdc..59538a2fe095960441f325becb92d24f9663ba95 100644
--- a/alib2cli/src/builtin/WriteFile.cpp
+++ b/alib2cli/src/builtin/WriteFile.cpp
@@ -8,6 +8,7 @@
 #include "WriteFile.h"
 #include <registration/AlgoRegistration.hpp>
 #include <fstream>
+#include <global/GlobalData.h>
 
 namespace cli {
 
@@ -15,7 +16,7 @@ namespace builtin {
 
 void WriteFile::write ( const std::string & filename, const std::string & data ) {
 	if ( filename == "-" )
-		std::cout << data;
+		common::Streams::out << data;
 	else {
 		std::ofstream t ( filename );
 		if ( ! t.is_open ( ) ) {
diff --git a/alib2cli/src/command/AlgorithmsIntrospectionCommand.h b/alib2cli/src/command/AlgorithmsIntrospectionCommand.h
index b4c844307a9bf58d1ec648bf214acaae5667b9cd..8dc73efd2ded41f3dbace80b5b75094113b18bd7 100644
--- a/alib2cli/src/command/AlgorithmsIntrospectionCommand.h
+++ b/alib2cli/src/command/AlgorithmsIntrospectionCommand.h
@@ -15,7 +15,7 @@ public:
 
 	void printAlgos ( const ext::set < std::string > & algos ) const {
 		for ( const std::string & algo : algos )
-			std::cout << algo << std::endl;
+			common::Streams::out << algo << std::endl;
 	}
 
 	virtual Command::Result run ( Environment & environment ) const override {
diff --git a/alib2cli/src/command/CastsIntrospectionCommand.h b/alib2cli/src/command/CastsIntrospectionCommand.h
index 069d654b45fe6add4356743daa2edfff189bfd93..56fb4e0a758acb70dfe78488c52a299eb08962c5 100644
--- a/alib2cli/src/command/CastsIntrospectionCommand.h
+++ b/alib2cli/src/command/CastsIntrospectionCommand.h
@@ -17,12 +17,12 @@ public:
 
 	void printTypes ( const ext::set < std::string > & types ) const {
 		for ( const std::string & type : types )
-			std::cout << type << std::endl;
+			common::Streams::out << type << std::endl;
 	}
 
 	void printCasts ( const ext::set < ext::pair < std::string, std::string > > & casts ) const {
 		for ( const ext::pair < std::string, std::string > & cast : casts )
-			std::cout << cast.first << ", " << cast.second << std::endl;
+			common::Streams::out << cast.first << ", " << cast.second << std::endl;
 	}
 
 	virtual Command::Result run ( Environment & environment ) const override {
diff --git a/alib2cli/src/command/DataTypesIntrospectionCommand.h b/alib2cli/src/command/DataTypesIntrospectionCommand.h
index 18c4e4e344c74fd8cc335ec8ade683d7890cdf24..a5a9b53a292ada805a73b61ae3b5c31fa33822ca 100644
--- a/alib2cli/src/command/DataTypesIntrospectionCommand.h
+++ b/alib2cli/src/command/DataTypesIntrospectionCommand.h
@@ -17,7 +17,7 @@ public:
 
 	void printTypes ( const ext::set < std::string > & types ) const {
 		for ( const std::string & type : types )
-			std::cout << type << std::endl;
+			common::Streams::out << type << std::endl;
 	}
 
 	virtual Command::Result run ( Environment & environment ) const override {
diff --git a/alib2cli/src/command/HelpCommand.h b/alib2cli/src/command/HelpCommand.h
index 491cf8026cfce56eac69ed28a12e620ae272ea24..cae2b64cbb55e5bc7f67fb4f9a7f236984924695 100644
--- a/alib2cli/src/command/HelpCommand.h
+++ b/alib2cli/src/command/HelpCommand.h
@@ -19,56 +19,56 @@ public:
 			command = m_command->eval ( environment );
 
 		if ( command == "execute" ) {
-			std::cout << "Execute command executes statements and either prints the result or writes the result to a file" << std::endl;
-			std::cout << "The qualification of the type of the result is remembered and when connecting statements together the compatibility with respective param is checked." << std::endl;
-			std::cout << "It is possible to use ^ symbol to move the result value of a statement to a parameter of another statement." << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "statement_list:" << std::endl;
-			std::cout << "statement ( | statement )* - at least one statement followed by a pipe separated sequence of other statements" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "arg:" << std::endl;
-			std::cout << "value  - immediate string value" << std::endl;
-			std::cout << "#value - string value from environmet variable" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "param:" << std::endl;
-			std::cout << "[^] -                   - a value from the previous result (PreviousResultParam)" << std::endl;
-			std::cout << "[^] <( statement_list ) - a statement list serving as a param (StatementParam)" << std::endl;
-			std::cout << "[^] ( arg ) param       - a casted parameter, type is given by arg value (CastParam)" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "identifier  - a string param - the value is a immediate string (ImmediateParam)" << std::endl;
-			std::cout << "number      - a number param - the value is a immediate integer (ImmediateParam)" << std::endl;
-			std::cout << "#identifier - a string param - identified by an environment variable (ValueParam)" << std::endl;
-			std::cout << "[^] $arg    - a value from a variable, name is given by arg value (VariableParam)" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "<arg        - a value from a xml file, filename is given by arg value (FileParam)" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "statement:" << std::endl;
-			std::cout << "name ( param )* output_spec - a statement with params, name is an immediate value (SingleStatement)" << std::endl;
-			std::cout << "( type ) [^] statement      - the result of a statement is casted, type is given by value (CastedStatement)" << std::endl;
-			std::cout << "{ :type ( statement ) * }   - creates a set of type given by arg value with content values from individual statements" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "#identifier   - an immediate value from an environment (ValueStatement)" << std::endl;
-			std::cout << "$identifier   - a value from a variable, identifier is an immediate value (VariableStatement)" << std::endl;
-			std::cout << "$#identifier  - a value from a variable, identified by an environment variable (VariableStatement)" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "< [:type] arg - a value from a xml file, identifier is given by arg value, type of the value can be hinted with optional parameter (FileStatement)" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "output_spec:" << std::endl;
-			std::cout << ">arg     - a value to a xml file, identifier is given by arg value (ResultFileStatement)" << std::endl;
-			std::cout << ">$arg    - a value to a variable, identifier is given by arg value  (ResultVariableStatement)" << std::endl;
-			std::cout << ">        - a value is discarded" << std::endl;
-			std::cout << "         - an empty output specifier prints the result to the stdout (ResultPrintStatement)" << std::endl;
+			common::Streams::out << "Execute command executes statements and either prints the result or writes the result to a file" << std::endl;
+			common::Streams::out << "The qualification of the type of the result is remembered and when connecting statements together the compatibility with respective param is checked." << std::endl;
+			common::Streams::out << "It is possible to use ^ symbol to move the result value of a statement to a parameter of another statement." << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "statement_list:" << std::endl;
+			common::Streams::out << "statement ( | statement )* - at least one statement followed by a pipe separated sequence of other statements" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "arg:" << std::endl;
+			common::Streams::out << "value  - immediate string value" << std::endl;
+			common::Streams::out << "#value - string value from environmet variable" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "param:" << std::endl;
+			common::Streams::out << "[^] -                   - a value from the previous result (PreviousResultParam)" << std::endl;
+			common::Streams::out << "[^] <( statement_list ) - a statement list serving as a param (StatementParam)" << std::endl;
+			common::Streams::out << "[^] ( arg ) param       - a casted parameter, type is given by arg value (CastParam)" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "identifier  - a string param - the value is a immediate string (ImmediateParam)" << std::endl;
+			common::Streams::out << "number      - a number param - the value is a immediate integer (ImmediateParam)" << std::endl;
+			common::Streams::out << "#identifier - a string param - identified by an environment variable (ValueParam)" << std::endl;
+			common::Streams::out << "[^] $arg    - a value from a variable, name is given by arg value (VariableParam)" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "<arg        - a value from a xml file, filename is given by arg value (FileParam)" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "statement:" << std::endl;
+			common::Streams::out << "name ( param )* output_spec - a statement with params, name is an immediate value (SingleStatement)" << std::endl;
+			common::Streams::out << "( type ) [^] statement      - the result of a statement is casted, type is given by value (CastedStatement)" << std::endl;
+			common::Streams::out << "{ :type ( statement ) * }   - creates a set of type given by arg value with content values from individual statements" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "#identifier   - an immediate value from an environment (ValueStatement)" << std::endl;
+			common::Streams::out << "$identifier   - a value from a variable, identifier is an immediate value (VariableStatement)" << std::endl;
+			common::Streams::out << "$#identifier  - a value from a variable, identified by an environment variable (VariableStatement)" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "< [:type] arg - a value from a xml file, identifier is given by arg value, type of the value can be hinted with optional parameter (FileStatement)" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "output_spec:" << std::endl;
+			common::Streams::out << ">arg     - a value to a xml file, identifier is given by arg value (ResultFileStatement)" << std::endl;
+			common::Streams::out << ">$arg    - a value to a variable, identifier is given by arg value  (ResultVariableStatement)" << std::endl;
+			common::Streams::out << ">        - a value is discarded" << std::endl;
+			common::Streams::out << "         - an empty output specifier prints the result to the stdout (ResultPrintStatement)" << std::endl;
 		} else if ( command == "" ) {
-			std::cout << "Simple help for the query language" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "command quit: quits the processor." << std::endl;
-			std::cout << "command help: shows this help." << std::endl;
-			std::cout << "command introspect: prints available algorithms, algorithm overloads, casts, and datatypes." << std::endl;
-			std::cout << "command execute: executes statements" << std::endl;
-			std::cout << "" << std::endl;
-			std::cout << "for details use help of individual command" << std::endl;
+			common::Streams::out << "Simple help for the query language" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "command quit: quits the processor." << std::endl;
+			common::Streams::out << "command help: shows this help." << std::endl;
+			common::Streams::out << "command introspect: prints available algorithms, algorithm overloads, casts, and datatypes." << std::endl;
+			common::Streams::out << "command execute: executes statements" << std::endl;
+			common::Streams::out << "" << std::endl;
+			common::Streams::out << "for details use help of individual command" << std::endl;
 		} else {
-			std::cout << "The command " << command << " either does not exist or does not have a help entry." << std::endl;
+			common::Streams::out << "The command " << command << " either does not exist or does not have a help entry." << std::endl;
 		}
 		return Command::Result::OK;
 	}
diff --git a/alib2cli/src/command/OverloadsIntrospectionCommand.h b/alib2cli/src/command/OverloadsIntrospectionCommand.h
index 4b67ad50937df20c5d2440a4ef89d89c2c38e425..060c74c088c6be4bfe9df298599dc0714be737a8 100644
--- a/alib2cli/src/command/OverloadsIntrospectionCommand.h
+++ b/alib2cli/src/command/OverloadsIntrospectionCommand.h
@@ -18,45 +18,45 @@ public:
 
 		ext::set < ext::tuple < abstraction::AlgorithmCategories::AlgorithmCategory, ext::pair < std::string, ext::set < abstraction::ParamQualifiers::ParamQualifier > >, ext::vector < ext::tuple < std::string, ext::set < abstraction::ParamQualifiers::ParamQualifier >, std::string > > > > overloads = abstraction::Registry::listOverloads ( param );
 		for ( const ext::tuple < abstraction::AlgorithmCategories::AlgorithmCategory, ext::pair < std::string, ext::set < abstraction::ParamQualifiers::ParamQualifier > >, ext::vector < ext::tuple < std::string, ext::set < abstraction::ParamQualifiers::ParamQualifier >, std::string > > > & overload : overloads ) {
-			std::cout << std::get < 0 > ( overload ) << ": ";
+			common::Streams::out << std::get < 0 > ( overload ) << ": ";
 			{
 				const ext::pair < std::string, ext::set < abstraction::ParamQualifiers::ParamQualifier > > & result = std::get < 1 > ( overload );
 
 				if ( std::get < 1 > ( result ).count ( abstraction::ParamQualifiers::ParamQualifier::CONST ) )
-					std::cout << "const ";
+					common::Streams::out << "const ";
 
-				std::cout << std::get < 0 > ( result );
+				common::Streams::out << std::get < 0 > ( result );
 
 				if ( std::get < 1 > ( result ).count ( abstraction::ParamQualifiers::ParamQualifier::LREF ) )
-					std::cout << " &";
+					common::Streams::out << " &";
 
 				if ( std::get < 1 > ( result ).count ( abstraction::ParamQualifiers::ParamQualifier::RREF ) )
-					std::cout << " &&";
+					common::Streams::out << " &&";
 			}
-			std::cout << " (";
+			common::Streams::out << " (";
 			bool first = true;
 			for ( const ext::tuple < std::string, ext::set < abstraction::ParamQualifiers::ParamQualifier >, std::string > & parameter : std::get < 2 > ( overload ) ) {
 				if ( first )
 					first = false;
 				else
-					std::cout << ",";
+					common::Streams::out << ",";
 
 				if ( std::get < 1 > ( parameter ).count ( abstraction::ParamQualifiers::ParamQualifier::CONST ) )
-					std::cout << " const ";
+					common::Streams::out << " const ";
 				else
-					std::cout << " ";
+					common::Streams::out << " ";
 
-				std::cout << std::get < 0 > ( parameter );
+				common::Streams::out << std::get < 0 > ( parameter );
 
 				if ( std::get < 1 > ( parameter ).count ( abstraction::ParamQualifiers::ParamQualifier::LREF ) )
-					std::cout << " &";
+					common::Streams::out << " &";
 
 				if ( std::get < 1 > ( parameter ).count ( abstraction::ParamQualifiers::ParamQualifier::RREF ) )
-					std::cout << " &&";
+					common::Streams::out << " &&";
 
-				std::cout << " " << std::get < 2 > ( parameter );
+				common::Streams::out << " " << std::get < 2 > ( parameter );
 			}
-			std::cout << " )" << std::endl;
+			common::Streams::out << " )" << std::endl;
 		}
 
 		return Command::Result::OK;
diff --git a/alib2cli/src/command/SetCommand.h b/alib2cli/src/command/SetCommand.h
index a2affbece4d7d79a179c9cd61a645cf0aedf91be..5627ad91f44e9150fdc8f983ea86c9f7ad891cc2 100644
--- a/alib2cli/src/command/SetCommand.h
+++ b/alib2cli/src/command/SetCommand.h
@@ -23,7 +23,7 @@ public:
 		} else if ( m_param == "optimizeXml" ) {
 			common::GlobalData::optimizeXml = ext::from_string < bool > ( m_value );
 		} else {
-			std::cout << "The set parameter " << m_param << " does not exist." << std::endl;
+			common::Streams::out << "The set parameter " << m_param << " does not exist." << std::endl;
 		}
 		return Command::Result::OK;
 	}
diff --git a/alib2common/src/debug/sigHandler.cpp b/alib2common/src/debug/sigHandler.cpp
index a3cfbb3ce4d60a4b53c6cc7dde54e7f1b043d345..e7a791c314e95309d839c9295fc901c0fdeaf852 100644
--- a/alib2common/src/debug/sigHandler.cpp
+++ b/alib2common/src/debug/sigHandler.cpp
@@ -8,23 +8,24 @@
 
 #include "simpleStacktrace.h"
 #include <iostream>
+#include <global/GlobalData.h>
 
 namespace ext {
 
 void SigHandler::handler(int signal) {
 	switch(signal) {
 		case SIGSEGV:
-			std::cout << "Segmentation fault" << std::endl;
+			common::Streams::out << "Segmentation fault" << std::endl;
 			break;
 		case SIGINT:
-			std::cout << "Interrupted" << std::endl;
+			common::Streams::out << "Interrupted" << std::endl;
 			break;
 		default:
-			std::cout << "Unknown signal" << std::endl;
+			common::Streams::out << "Unknown signal" << std::endl;
 			break;
 	}
 	#ifdef DEBUG
-		std::cout << ext::simpleStacktrace() << std::endl;
+		common::Streams::out << ext::simpleStacktrace() << std::endl;
 	#endif
 	exit(1);
 }
diff --git a/alib2raw/src/factory/RawDataFactory.hpp b/alib2raw/src/factory/RawDataFactory.hpp
index a2e38cfdcf40af6c698ed40c6c413ed841b590a5..6f9c6aa9f0ec0ce151a14e8d6168167087a149b9 100644
--- a/alib2raw/src/factory/RawDataFactory.hpp
+++ b/alib2raw/src/factory/RawDataFactory.hpp
@@ -13,6 +13,7 @@
 #include <core/rawApi.hpp>
 #include <fstream>
 #include <sstream>
+#include <global/GlobalData.h>
 
 namespace alib {
 
@@ -110,7 +111,7 @@ public:
 
 	template < class T >
 	static void toStdout ( const T & data ) {
-		toStream < T > ( data, std::cout );
+		toStream < T > ( data, common::Streams::out );
 	}
 
 	template < class T >
diff --git a/alib2str/src/factory/StringDataFactory.hpp b/alib2str/src/factory/StringDataFactory.hpp
index f389987b07f03ef1520fde01d80c8d790748b021..886077cbcc063a53919b253dc8bfb3ed98660807 100644
--- a/alib2str/src/factory/StringDataFactory.hpp
+++ b/alib2str/src/factory/StringDataFactory.hpp
@@ -13,6 +13,7 @@
 #include <core/stringApi.hpp>
 #include <fstream>
 #include <sstream>
+#include <global/GlobalData.h>
 
 namespace alib {
 
@@ -95,7 +96,7 @@ public:
 
 	template < class T >
 	static void toStdout ( const T & data ) {
-		toStream < T > ( data, std::cout );
+		toStream < T > ( data, common::Streams::out );
 	}
 
 	template < class T >
diff --git a/aminimize2/src/aminimize.cpp b/aminimize2/src/aminimize.cpp
index b35726b9c6ff535df27b61b6246d00ff7d3cc368..bf11c193bf4b5dcf0f98f6f9d2191b03f158f387 100644
--- a/aminimize2/src/aminimize.cpp
+++ b/aminimize2/src/aminimize.cpp
@@ -82,7 +82,7 @@ int main(int argc, char** argv) {
 		alib::XmlDataFactory::toStdout(exception);
 		return 1;
 	} catch (const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/anormalize2/src/anormalize.cpp b/anormalize2/src/anormalize.cpp
index ed7fd9b9a1b6e64e0b4b1618c57b98b1494e729d..193e86da548955f26a712ec8655dc22de606c8b2 100644
--- a/anormalize2/src/anormalize.cpp
+++ b/anormalize2/src/anormalize.cpp
@@ -115,7 +115,7 @@ int main ( int argc, char * * argv ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/aql2/src/aql.cpp b/aql2/src/aql.cpp
index 9d724b26b477b81418d21054a76d987359bcba1a..8c71ad1dc94c8479a1732ba7d4ec59a8eb4f6752 100644
--- a/aql2/src/aql.cpp
+++ b/aql2/src/aql.cpp
@@ -111,7 +111,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/aquery2/src/aquery.cpp b/aquery2/src/aquery.cpp
index 72e95dbb296235ddc5331a88cd8d70d542843a48..92edd16193b3cc61df0163107c01dc58f2ee2e84 100644
--- a/aquery2/src/aquery.cpp
+++ b/aquery2/src/aquery.cpp
@@ -137,7 +137,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/arand2/src/arand.cpp b/arand2/src/arand.cpp
index 513fc477e8f0c6c4d4695176858e0278a22a7626..aff120ba551bed7d5e9dfcbb60ebf8968af3b708 100644
--- a/arand2/src/arand.cpp
+++ b/arand2/src/arand.cpp
@@ -207,7 +207,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/arename2/src/arename.cpp b/arename2/src/arename.cpp
index 001efb98af002ab523589df6abdf0caad9606ae1..096bf6b32a1a4841a876272578f8632b6f27c74e 100644
--- a/arename2/src/arename.cpp
+++ b/arename2/src/arename.cpp
@@ -82,7 +82,7 @@ int main ( int argc, char * * argv ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/areverse2/src/areverse.cpp b/areverse2/src/areverse.cpp
index 59f00c1578d1d79689e99e54d0986e5365e98f14..d25ef72f5ad343df7b755840eae701c8f1be4ea7 100644
--- a/areverse2/src/areverse.cpp
+++ b/areverse2/src/areverse.cpp
@@ -70,7 +70,7 @@ int main(int argc, char** argv) {
 		alib::XmlDataFactory::toStdout(exception);
 		return 1;
 	} catch(const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/arun2/src/arun.cpp b/arun2/src/arun.cpp
index f2a69ab3f6afd79495c74b73579b6695324c245a..a3c61654743a1dbb74193a747ef2528e2253ddf6 100644
--- a/arun2/src/arun.cpp
+++ b/arun2/src/arun.cpp
@@ -110,7 +110,7 @@ int main(int argc, char* argv[]) {
 		alib::XmlDataFactory::toStdout( exception );
 		return 1;
 	} catch (const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/astat2/src/astat.cpp b/astat2/src/astat.cpp
index c2634240885234aa8f17e13cfe05efe5b710acb1..81bf2c53fce1ade5ebe21138c31d4d0d513172d2 100644
--- a/astat2/src/astat.cpp
+++ b/astat2/src/astat.cpp
@@ -85,7 +85,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/astringology2/src/astringology.cpp b/astringology2/src/astringology.cpp
index 70691b793c3059a1cf40d1e43c277ec091f450c1..25b83d39760a7dd4166b109d0b454708dd1aa36d 100644
--- a/astringology2/src/astringology.cpp
+++ b/astringology2/src/astringology.cpp
@@ -232,7 +232,7 @@ int main ( int argc, char * argv[] ) {
 		alib::XmlDataFactory::toStdout ( exception );
 		return 1;
 	} catch ( const TCLAP::ArgException & exception ) {
-		std::cout << exception.error ( ) << std::endl;
+		common::Streams::out << exception.error ( ) << std::endl;
 		return 2;
 	} catch ( const std::exception & exception ) {
 		common::Streams::err << "Exception caught: " << exception.what ( ) << std::endl;
diff --git a/atrim2/src/atrim.cpp b/atrim2/src/atrim.cpp
index 426d80f886bf4c304b2d25ddf6e684b00eff4df5..44fbb2d50e37dc6bb339d3795b0a48b42b5272ec 100644
--- a/atrim2/src/atrim.cpp
+++ b/atrim2/src/atrim.cpp
@@ -134,7 +134,7 @@ int main(int argc, char* argv[]) {
 		alib::XmlDataFactory::toStdout( exception );
 		return 1;
 	} catch(const TCLAP::ArgException& exception) {
-		std::cout << exception.error() << std::endl;
+		common::Streams::out << exception.error() << std::endl;
 		return 2;
 	} catch (const std::exception& exception) {
 		common::Streams::err << "Exception caught: " << exception.what() << std::endl;
diff --git a/tniceprint/src/tniceprint.cpp b/tniceprint/src/tniceprint.cpp
index 113f9d2368b9f9359711fbf2425ed18af7a83721..bb2f53e466ae55818ba62395777c58d154331f41 100644
--- a/tniceprint/src/tniceprint.cpp
+++ b/tniceprint/src/tniceprint.cpp
@@ -50,14 +50,14 @@ int main(int argc, char** argv) {
 			measurements::end();
 			measurements::start("Output write", measurements::Type::AUXILIARY);
 
-			tree.nicePrint(std::cout);
+			tree.nicePrint(common::Streams::out);
 		} else if (alib::XmlDataFactory::first<tree::UnrankedTree < > >(tokens)) {
 			tree::UnrankedTree < > tree = alib::XmlDataFactory::fromTokens (std::move(tokens));
 
 			measurements::end();
 			measurements::start("Output write", measurements::Type::AUXILIARY);
 
-			tree.nicePrint(std::cout);
+			tree.nicePrint(common::Streams::out);
 		} else {
 			throw exception::CommonException("no tree on input");
 		}