diff --git a/alib2algo/src/automaton/convert/ToGrammar.h b/alib2algo/src/automaton/convert/ToGrammar.h
index eb75a107e131b2cf71672275a3ad38772f6380ad..4504b735bb74dccd1b2fdcde0c00d4f14f4a0e10 100644
--- a/alib2algo/src/automaton/convert/ToGrammar.h
+++ b/alib2algo/src/automaton/convert/ToGrammar.h
@@ -1,6 +1,22 @@
 /*
  * ToGrammar.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
  *  Created on: 9. 2. 2014
  *      Author: Jan Travnicek
  */
@@ -17,14 +33,26 @@ namespace automaton {
 
 namespace convert {
 
+/**
+ * Conversion of finite automata to regular grammars.
+ * This class serves as a "default wrapper" over the conversion of FA to RG. It delegates to the right regular grammar conversion.
+ * @sa ToGrammarRightRG
+ */
 class ToGrammar {
 public:
 	/**
-	 * Performs conversion.
-	 * @return left regular grammar equivalent to source automaton.
+	 * Performs the conversion (@sa ToGrammarRightRG::convert).
+	 * @tparam SymbolType Type for symbols.
+	 * @tparam StateType Type for states.
+	 * @param automaton the automaton to convert
+	 * @return right regular grammar equivalent to the input @p automaton
 	 */
 	template < class SymbolType, class StateType >
 	static grammar::RightRG < > convert(const automaton::NFA < SymbolType, StateType > & automaton);
+
+	/**
+	 * @overload
+	 */
 	template < class SymbolType, class StateType >
 	static grammar::RightRG < > convert(const automaton::DFA < SymbolType, StateType > & automaton);
 };
diff --git a/alib2algo/src/automaton/convert/ToGrammarLeftRG.h b/alib2algo/src/automaton/convert/ToGrammarLeftRG.h
index bd95158ee66ffbe32e5745eb9ba5af3aef88a4ca..7cddacbf917570a2bfc2e7494cd8c7cdb37a3edf 100644
--- a/alib2algo/src/automaton/convert/ToGrammarLeftRG.h
+++ b/alib2algo/src/automaton/convert/ToGrammarLeftRG.h
@@ -1,6 +1,23 @@
 /*
  * ToGrammarLeftRG.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *
  *  Created on: 9. 2. 2014
  *      Author: Tomas Pecka
  */
@@ -17,17 +34,21 @@ namespace automaton {
 namespace convert {
 
 /**
- * Finite automaton to right regular grammar converter.
- * Source: My own :)
+ * Converts a finite automaton to a left regular grammar.
  */
 class ToGrammarLeftRG {
 public:
 	/**
-	 * Performs conversion.
-	 * @return left regular grammar equivalent to source automaton.
+	 * Performs the conversion of the finite automaton to left regular grammar.
+	 * @param automaton a finite automaton to convert
+	 * @return left regular grammar equivalent to the source @p automaton.
 	 */
 	static grammar::LeftRG < > convert(const automaton::NFA < > & automaton);
-	static grammar::LeftRG < > convert(const automaton::DFA<>& automaton);
+
+	/**
+	 * @overload
+	 */
+	static grammar::LeftRG < > convert(const automaton::DFA < > & automaton);
 };
 
 } /* namespace convert */
diff --git a/alib2algo/src/automaton/convert/ToGrammarRightRG.h b/alib2algo/src/automaton/convert/ToGrammarRightRG.h
index a6b7f54e44b8539d122eca71120c006e6f93d899..d3d29ee7892a55afcc2d2c51009ea65c768cbc89 100644
--- a/alib2algo/src/automaton/convert/ToGrammarRightRG.h
+++ b/alib2algo/src/automaton/convert/ToGrammarRightRG.h
@@ -1,6 +1,22 @@
 /*
  * ToGrammarRightRG.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
  *  Created on: 9. 2. 2014
  *      Author: Tomas Pecka
  */
@@ -17,17 +33,21 @@ namespace automaton {
 namespace convert {
 
 /**
- * Finite automaton to right regular grammar converter.
- * Source: Melichar 2.104
+ * Converts a finite automaton to a right regular grammar (Melichar: Jazyky a překlady 2.104).
  */
 class ToGrammarRightRG {
 public:
 	/**
-	 * Performs conversion.
-	 * @return left regular grammar equivalent to source automaton.
+	 * Performs the conversion of the finite automaton to right regular grammar.
+	 * @param automaton a finite automaton to convert
+	 * @return right regular grammar equivalent to the source @p automaton.
 	 */
 	static grammar::RightRG < > convert(const automaton::NFA < > & automaton);
-	static grammar::RightRG < > convert(const automaton::DFA<>& automaton);
+
+	/**
+	 * \overload
+	 */
+	static grammar::RightRG < > convert(const automaton::DFA < > & automaton);
 };
 
 } /* namespace convert */
diff --git a/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.h b/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.h
index 6e9c9a458885a2f14f828233be77235cc8f633cc..507e5b00f7117ac924211f51b3ab7fb6498fa12f 100644
--- a/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.h
+++ b/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.h
@@ -1,6 +1,22 @@
 /*
  * ToPostfixPushdownAutomaton.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
  *  Created on: 13. 3. 2017
  *	  Author: Stepan Plachy
  */
@@ -17,16 +33,24 @@ namespace automaton {
 
 namespace convert {
 
+/**
+ * Converts a finite tree automaton (FTA) to a pushdown automaton (PDA) that reads linearised trees in their postfix notation.
+ */
 class ToPostfixPushdownAutomaton {
 public:
 	/**
-	 * Performs conversion.
-	 * @return PDA equivalent to original finite tree automaton reading linearized postfix tree
+	 * Performs the conversion of the deterministic FTA to the deterministic PDA
+	 * @param dfta Deterministic finite tree automaton to convert
+	 * @return (D)PDA equivalent to original finite tree automaton reading linearized postfix tree
 	 */
 	static automaton::DPDA < > convert ( const automaton::DFTA < > & dfta );
 
+	/**
+	 * Performs the conversion of the nondeterministic FTA to the nondeterministic PDA.
+	 * @param nfta Nondeterministic finite tree automaton to convert
+	 * @return (N)PDA equivalent to original finite tree automaton reading linearized postfix tree
+	 */
 	static automaton::NPDA < > convert ( const automaton::NFTA < > & nfta );
-
 };
 
 } /* namespace convert */
diff --git a/alib2algo/src/automaton/convert/ToRegExp.h b/alib2algo/src/automaton/convert/ToRegExp.h
index d67198a40a129eb25ddfa8f1e745f01125ed517b..bdbed7fa2d5ff4222236c3e3a4747d64a0523452 100644
--- a/alib2algo/src/automaton/convert/ToRegExp.h
+++ b/alib2algo/src/automaton/convert/ToRegExp.h
@@ -1,6 +1,22 @@
 /*
  * ToRegExp.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
  *  Created on: 9. 2. 2014
  *      Author: Jan Travnicek
  */
@@ -20,22 +36,51 @@ namespace automaton {
 
 namespace convert {
 
+/**
+ * Conversion of finite automata to regular expressions.
+ * This class serves as a "default wrapper" over the conversion of FA to RE. It delegates to the State Elimination algorithm.
+ * @sa ToRegExpStateElimination
+ */
 class ToRegExp {
 public:
 	/**
-	 * Performs conversion.
-	 * @return left regular grammar equivalent to source automaton.
+	 * Performs the conversion (@sa ToRegExpStateElimination::convert).
+	 * @tparam SymbolType Type for symbols.
+	 * @tparam EpsilonType Type for the epsilon symbol.
+	 * @tparam StateType Type for states.
+	 * @param automaton the automaton to convert
+	 * @return regular expression equivalent to the input @p automaton
 	 */
 	template < class SymbolType, class EpsilonType, class StateType >
 	static regexp::UnboundedRegExp < > convert(const automaton::EpsilonNFA < SymbolType, EpsilonType, StateType > & automaton);
+
+	/**
+	 * @overload
+	 */
 	template < class SymbolType, class StateType >
 	static regexp::UnboundedRegExp < > convert(const automaton::MultiInitialStateNFA < SymbolType, StateType > & automaton);
+
+	/**
+	 * @overload
+	 */
 	template < class SymbolType, class StateType >
 	static regexp::UnboundedRegExp < > convert(const automaton::NFA < SymbolType, StateType > & automaton);
+
+	/**
+	 * @overload
+	 */
 	template < class SymbolType, class StateType >
 	static regexp::UnboundedRegExp < > convert(const automaton::DFA < SymbolType, StateType > & automaton);
+
+	/**
+	 * @overload
+	 */
 	template < class SymbolType, class StateType >
 	static regexp::UnboundedRegExp < > convert(const automaton::ExtendedNFA < SymbolType, StateType > & automaton);
+
+	/**
+	 * @overload
+	 */
 	template < class SymbolType, class StateType >
 	static regexp::UnboundedRegExp < > convert(const automaton::CompactNFA < SymbolType, StateType > & automaton);
 };
diff --git a/alib2algo/src/automaton/convert/ToRegExpAlgebraic.h b/alib2algo/src/automaton/convert/ToRegExpAlgebraic.h
index a6bc5c239cf332931e4696571f4f0f0eb66ac815..b1d8af0f8c4fdea86e2b0bb847c9f1ebb850c551 100644
--- a/alib2algo/src/automaton/convert/ToRegExpAlgebraic.h
+++ b/alib2algo/src/automaton/convert/ToRegExpAlgebraic.h
@@ -1,6 +1,22 @@
 /*
  * ToRegExpAlgebraic.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
  *  Created on: 11. 2. 2014
  *	  Author: Tomas Pecka
  */
@@ -22,18 +38,32 @@ namespace convert {
 // https://github.com/ferno/greenery/blob/bcc0a136335edbe94cd7725fc6e8cce0268d850c/fsm.py
 
 /**
- * Converts FA to RE using Brzozowski's algebraic method using right regular equations.
- * Source : Melichar 2.122
+ * Converts a finite automaton to a regular expression using using the Brzozowski's algebraic method (Melichar: Jazyky a překlady 2.122).
+ * The algorithm creates a system of right regular equations that is then solved.
+ * The regular expression is returned as regexp::UnboundedRegExp.
  */
 class ToRegExpAlgebraic {
 public:
 	/**
-	 * Performs conversion.
-	 * @return regular expression equivalent to input automaton.
+	 * Performs the actual conversion.
+	 * @param automaton The automaton that is to be converted to the regular expression.
+	 * @return regular expression equivalent to the input @p automaton.
 	 */
 	static regexp::UnboundedRegExp < > convert(const automaton::EpsilonNFA < > & automaton);
+
+	/**
+	 * \overload
+	 */
 	static regexp::UnboundedRegExp < > convert(const automaton::MultiInitialStateNFA < > & automaton);
+
+	/**
+	 * \overload
+	 */
 	static regexp::UnboundedRegExp < > convert(const automaton::NFA < > & automaton);
+
+	/**
+	 * \overload
+	 */
 	static regexp::UnboundedRegExp < > convert(const automaton::DFA < > & automaton);
 };
 
diff --git a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
index 3dd0819a54cc88b412efbaf15efe14835cdf4348..e98fd37840c4cb52139a7b2fe8853402293a38b5 100644
--- a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
+++ b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
@@ -61,11 +61,11 @@ automaton::ExtendedNFA < > ToRegExpStateElimination::eliminateState(const automa
 
 	for(const auto& p: newAutomaton.getStates()) {
 		for(const auto& r : newAutomaton.getStates()) {
-			regexp::UnboundedRegExpStructure < DefaultSymbolType > concat = transition(extendedAutomaton, p, q);
-			concat = regexp::RegExpConcatenate::concatenate(concat, regexp::RegExpIterate::iterate(transition(extendedAutomaton, q, q)));
-			concat = regexp::RegExpConcatenate::concatenate(concat, transition(extendedAutomaton, q, r));
+			regexp::UnboundedRegExpStructure < DefaultSymbolType > concat = transitionsToRegExp(extendedAutomaton, p, q);
+			concat = regexp::RegExpConcatenate::concatenate(concat, regexp::RegExpIterate::iterate(transitionsToRegExp(extendedAutomaton, q, q)));
+			concat = regexp::RegExpConcatenate::concatenate(concat, transitionsToRegExp(extendedAutomaton, q, r));
 
-			regexp::UnboundedRegExpStructure < DefaultSymbolType > alt = regexp::RegExpAlternate::alternate(concat, transition(extendedAutomaton, p, r));
+			regexp::UnboundedRegExpStructure < DefaultSymbolType > alt = regexp::RegExpAlternate::alternate(concat, transitionsToRegExp(extendedAutomaton, p, r));
 
 			newAutomaton.addTransition(p, regexp::simplify::RegExpOptimize::optimize(alt), r);
 		}
@@ -74,7 +74,7 @@ automaton::ExtendedNFA < > ToRegExpStateElimination::eliminateState(const automa
 	return newAutomaton;
 }
 
-const regexp::UnboundedRegExpStructure < DefaultSymbolType > ToRegExpStateElimination::transition(const automaton::ExtendedNFA < > & automaton, const DefaultStateType& from, const DefaultStateType& to) {
+const regexp::UnboundedRegExpStructure < DefaultSymbolType > ToRegExpStateElimination::transitionsToRegExp(const automaton::ExtendedNFA < > & automaton, const DefaultStateType& from, const DefaultStateType& to) {
 	regexp::UnboundedRegExpStructure < DefaultSymbolType > ret(regexp::UnboundedRegExpEmpty < DefaultSymbolType > { });
 
 	for(const auto& transition: automaton.getTransitionsFromState(from))
diff --git a/alib2algo/src/automaton/convert/ToRegExpStateElimination.h b/alib2algo/src/automaton/convert/ToRegExpStateElimination.h
index c4a3cb5e7e9dce085316e29a41566dfadf2c1b8f..c16bd9e58fae22e89b1e013cd9a73590c0434b42 100644
--- a/alib2algo/src/automaton/convert/ToRegExpStateElimination.h
+++ b/alib2algo/src/automaton/convert/ToRegExpStateElimination.h
@@ -1,6 +1,22 @@
 /*
  * ToRegExpStateElimination.h
  *
+ * This file is part of Algorithms library toolkit.
+ * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
+
+ * Algorithms library toolkit is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * Algorithms library toolkit is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with Algorithms library toolkit.  If not, see <http://www.gnu.org/licenses/>.
+ *
  *  Created on: 9. 2. 2014
  *	  Author: Tomas Pecka
  */
@@ -21,24 +37,43 @@ namespace automaton {
 namespace convert {
 
 /**
- * Converts FSM to RE using State Elimination algorithm.
- * Source: Melichar 2.118
+ * Converts a finite automaton to a regular expression using using the State Elimination algorithm (Melichar: Jazyky a překlady 2.118).
+ * This algorithm returns the regular expression as regexp::UnboundedRegExp.
  */
 class ToRegExpStateElimination {
 public:
 	/**
 	 * Performs conversion.
-	 * @param automaton automaton to convert
-	 * @return regular expression equivalent to source NFA.
+	 * @tparam T type of the finite automaton
+	 * @param automaton finite automaton to convert
+	 * @return unbounded regular expression equivalent to the original automaton
 	 */
 	template<class T>
 	static regexp::UnboundedRegExp < > convert(const T& automaton);
 
 private:
+	/**
+	 * Helper function to create new initial and final states in the automaton for the algorithm.
+	 * @param automaton extended finite automaton
+	 */
 	static void extendExtendedNFA(automaton::ExtendedNFA < > & automaton);
 
-	static const regexp::UnboundedRegExpStructure < DefaultSymbolType > transition(const automaton::ExtendedNFA < > & automaton, const DefaultStateType& from, const DefaultStateType& to);
+	/**
+	 * Helper function to create a regexp from all transitions between states @p from and @p to.
+	 * It creates the alternation regexp of all such transitions.
+	 * @param automaton automaton to select the transitions
+	 * @param from source state in @param automaton
+	 * @param to   destination state in @param automaton
+	 * @return the regular expression node representing the transitions between states @p from and @p to
+	 */
+	static const regexp::UnboundedRegExpStructure < DefaultSymbolType > transitionsToRegExp(const automaton::ExtendedNFA < > & automaton, const DefaultStateType& from, const DefaultStateType& to);
 
+	/**
+	 * Helper function for the elimination of a single state according to the algorithm.
+	 * @param extendedAutomaton automaton for the elimination
+	 * @param state state to eliminate
+	 * @return the @p extendedAutomaton after the elimination of a state @state.
+	 */
 	static automaton::ExtendedNFA < > eliminateState(const automaton::ExtendedNFA < > & extendedAutomaton, const DefaultStateType& state);
 };