diff --git a/alib2/src/AlibException.h b/alib2/src/AlibException.h
index 7a8c7e082ced9cf61006a200d4f96d645e9035e1..9c33fd60cb5d1eda01dcf5594a8a1a5d57df2885 100644
--- a/alib2/src/AlibException.h
+++ b/alib2/src/AlibException.h
@@ -24,7 +24,7 @@ protected:
 public:
 
 	AlibException ( );
-	AlibException ( const std::string & cause );
+	explicit AlibException ( const std::string & cause );
 	virtual ~AlibException ( ) noexcept;
 
 	/**
diff --git a/alib2/src/alphabet/Blank.cpp b/alib2/src/alphabet/Blank.cpp
index 0f604e22d84dc2c3d23a416b99a594be69169b84..060950e349c3a76f65ce558f577cb57f3fbf6d5b 100644
--- a/alib2/src/alphabet/Blank.cpp
+++ b/alib2/src/alphabet/Blank.cpp
@@ -13,4 +13,6 @@ Blank::Blank() : Symbol("") {
 
 }
 
+Blank Blank::BLANK = Blank();
+
 } /* namespace alphabet */
diff --git a/alib2/src/alphabet/Blank.h b/alib2/src/alphabet/Blank.h
index b65c10fa7465e5e55300b73af924a8b6f93ee991..f7a9708153e1392a4ed5c86d182314737d6c8e98 100644
--- a/alib2/src/alphabet/Blank.h
+++ b/alib2/src/alphabet/Blank.h
@@ -23,6 +23,7 @@ public:
 	 */
 	Blank();
 
+	static Blank BLANK;
 };
 
 } /* namespace alphabet */
diff --git a/alib2/src/alphabet/Symbol.h b/alib2/src/alphabet/Symbol.h
index 41b44a0dcbaf7f42849aa1161e26905a1807ee06..a7c39ba3b372b765708b1228d2a6bca0e30da11c 100644
--- a/alib2/src/alphabet/Symbol.h
+++ b/alib2/src/alphabet/Symbol.h
@@ -24,8 +24,8 @@ public:
 	 * Creates new symbol with given name.
 	 * @param symbol name of the symbol
 	 */
-	Symbol(const std::string& symbol);
-	Symbol(std::string&& symbol);
+	explicit Symbol(const std::string& symbol);
+	explicit Symbol(std::string&& symbol);
 
 	/**
 	 * @return name of the symbol
diff --git a/alib2/src/automaton/AutomatonException.h b/alib2/src/automaton/AutomatonException.h
index 80f0662321839ceba449fe1ba2141d1c5619af7e..864312c09cc229d3494f0df222ce6d16412d795b 100644
--- a/alib2/src/automaton/AutomatonException.h
+++ b/alib2/src/automaton/AutomatonException.h
@@ -18,7 +18,7 @@ namespace automaton {
 class AutomatonException: public alib::AlibException {
 public:
 	AutomatonException();
-	AutomatonException(const std::string& cause);
+	explicit AutomatonException(const std::string& cause);
 	virtual ~AutomatonException() throw ();
 };
 
diff --git a/alib2/src/automaton/UnknownAutomaton.cpp b/alib2/src/automaton/UnknownAutomaton.cpp
index 9a3d7787d55ef50c3fdf6ef2f815d54ece061161..d8f79988a8cd39c36366cbede090e3cf5810162a 100644
--- a/alib2/src/automaton/UnknownAutomaton.cpp
+++ b/alib2/src/automaton/UnknownAutomaton.cpp
@@ -165,8 +165,9 @@ std::ostream& operator<<(std::ostream& out, const UnknownAutomaton& automaton) {
 		<< " stackAlphabet = " << automaton.stackAlphabet
 		<< " initialSymbols = " << automaton.initialSymbols
 		<< " tapeAlphabet = " << automaton.tapeAlphabet
-		<< " blankSymbol = " << ((automaton.blankSymbol == NULL) ? (std::string) "NULL" : *automaton.blankSymbol)
-		<< " transitions = " << automaton.transitions
+		<< " blankSymbol = ";
+	if(automaton.blankSymbol == NULL) out << "NULL"; else out << *automaton.blankSymbol;
+	out << " transitions = " << automaton.transitions
 		<< ")";
 	return out;
 }
diff --git a/alib2/src/regexp/Alternation.h b/alib2/src/regexp/Alternation.h
index 5424fe016eee98f0204521bb6f63a88c2aff8e70..8d6b1498c25edfa5f17b64759e7ab97363d5a71c 100644
--- a/alib2/src/regexp/Alternation.h
+++ b/alib2/src/regexp/Alternation.h
@@ -47,8 +47,8 @@ protected:
 	virtual void computeMinimalAlphabet( std::set<alphabet::Symbol>& alphabet ) const;
 	
 public:
-	Alternation(RegExpElement&& left, RegExpElement&& right);
-	Alternation(const RegExpElement& left, const RegExpElement& right);
+	explicit Alternation(RegExpElement&& left, RegExpElement&& right);
+	explicit Alternation(const RegExpElement& left, const RegExpElement& right);
 	
 	Alternation(const Alternation& other);
 	Alternation(Alternation&& other) noexcept;
diff --git a/alib2/src/regexp/Concatenation.h b/alib2/src/regexp/Concatenation.h
index f3cb0ad367933bfc06c6e69a3a3f72acb9aa1813..de3430d129ab9671f804fb0cd5f0a10571669335 100644
--- a/alib2/src/regexp/Concatenation.h
+++ b/alib2/src/regexp/Concatenation.h
@@ -44,8 +44,8 @@ protected:
 	virtual void computeMinimalAlphabet( std::set<alphabet::Symbol>& alphabet ) const;
 
 public:
-	Concatenation(RegExpElement&& left, RegExpElement&& right);
-	Concatenation(const RegExpElement& left, const RegExpElement& right);
+	explicit Concatenation(RegExpElement&& left, RegExpElement&& right);
+	explicit Concatenation(const RegExpElement& left, const RegExpElement& right);
 	
 	Concatenation(const Concatenation& other);
 	Concatenation(Concatenation&& other) noexcept;
diff --git a/alib2/src/regexp/Iteration.h b/alib2/src/regexp/Iteration.h
index f0eb5139e089bc4bb17e1e9356ef03cf40fe6a6e..18d226158c1d5cddb8ca4f55e236cc7809f8ea32 100644
--- a/alib2/src/regexp/Iteration.h
+++ b/alib2/src/regexp/Iteration.h
@@ -44,8 +44,8 @@ protected:
 	virtual void computeMinimalAlphabet( std::set<alphabet::Symbol>& alphabet ) const;
 	
 public:
-	Iteration(RegExpElement&&);
-	Iteration(const RegExpElement&);
+	explicit Iteration(RegExpElement&&);
+	explicit Iteration(const RegExpElement&);
 	
 	Iteration(const Iteration& other);
 	Iteration(Iteration&& other) noexcept;
diff --git a/alib2/src/regexp/RegExp.h b/alib2/src/regexp/RegExp.h
index 11a50be84355962a34cbaeecfc9984aea06033cc..99b900f099509f16025ca117ad89b20c7d8afcd1 100644
--- a/alib2/src/regexp/RegExp.h
+++ b/alib2/src/regexp/RegExp.h
@@ -33,8 +33,8 @@ public:
 	RegExp();
 	RegExp(const std::set<alphabet::Symbol>& alphabet, const RegExpElement& regExp);
 	RegExp(std::set<alphabet::Symbol>&& alphabet, RegExpElement&& regExp);
-	RegExp(const RegExpElement& regExp);
-	RegExp(RegExpElement&& regExp);
+	explicit RegExp(const RegExpElement& regExp);
+	explicit RegExp(RegExpElement&& regExp);
 
 	/**
 	 * Copy constructor.
diff --git a/alib2/src/regexp/RegExpSymbol.h b/alib2/src/regexp/RegExpSymbol.h
index e94d40bc9b1ba228258e7d2d723cbecbc5cc3de4..c32dea2405f177fe2dd17f08a2f27c83641f2d2d 100644
--- a/alib2/src/regexp/RegExpSymbol.h
+++ b/alib2/src/regexp/RegExpSymbol.h
@@ -41,8 +41,8 @@ protected:
 	 */
 	virtual void computeMinimalAlphabet( std::set<alphabet::Symbol>& alphabet ) const;
 public:
-	RegExpSymbol(const std::string& symbol);
-	RegExpSymbol(std::string&& symbol);
+	explicit RegExpSymbol(const std::string& symbol);
+	explicit RegExpSymbol(std::string&& symbol);
 	
 	RegExpSymbol(const RegExpSymbol& other);
 	RegExpSymbol(RegExpSymbol&& other) noexcept;
diff --git a/alib2/src/string/CyclicString.h b/alib2/src/string/CyclicString.h
index 2db7f39cdc750746372988e62d7b0647db4a5811..79a65d9a3325038636bbd74310e64506988a8e5c 100644
--- a/alib2/src/string/CyclicString.h
+++ b/alib2/src/string/CyclicString.h
@@ -27,7 +27,7 @@ protected:
 
 public:
 	CyclicString();
-	CyclicString(std::vector<alphabet::Symbol>& data);
+	explicit CyclicString(std::vector<alphabet::Symbol>& data);
 	
 	/**
 	 * @return the input alphabet
diff --git a/alib2/src/string/String.h b/alib2/src/string/String.h
index 436163210bb0229786d3bf989a29939d6450d2c0..1f0e164e6dc3cc5ce68549538c549fe0c92d6651 100644
--- a/alib2/src/string/String.h
+++ b/alib2/src/string/String.h
@@ -27,7 +27,7 @@ protected:
 
 public:
 	String();
-	String(std::vector<alphabet::Symbol>& data);
+	explicit String(std::vector<alphabet::Symbol>& data);
 	
 	/**
 	 * @return the input alphabet