diff --git a/aconversions2/src/ConversionHandler.cpp b/aconversions2/src/ConversionHandler.cpp
index 73f18364c4557554b5f3712be7fa92f8852d77b6..4ac215a03662c1bc46546d3372fe5d986cf9e92d 100644
--- a/aconversions2/src/ConversionHandler.cpp
+++ b/aconversions2/src/ConversionHandler.cpp
@@ -138,7 +138,7 @@ void ConversionHandler::convertFAtoRG( void )
 
 	switch( m_algorithm ) {
 	case INCOMING_TRANSITIONS: {
-			grammar::Grammar grammar = automaton::convert::ToGrammarLeftRG::convert(fsm);
+			grammar::LeftRG grammar = automaton::convert::ToGrammarLeftRG::convert(fsm);
 
 			std::chrono::measurements::end();
 			std::chrono::measurements::start("Output write", std::chrono::measurements::Type::AUXILARY);
@@ -148,7 +148,7 @@ void ConversionHandler::convertFAtoRG( void )
 		}
 	case OUTGOING_TRANSITIONS:
 	case DEFAULT: {
-			grammar::Grammar grammar = automaton::convert::ToGrammarRightRG::convert(fsm);
+			grammar::RightRG grammar = automaton::convert::ToGrammarRightRG::convert(fsm);
 
 			std::chrono::measurements::end();
 			std::chrono::measurements::start("Output write", std::chrono::measurements::Type::AUXILARY);
@@ -213,7 +213,7 @@ void ConversionHandler::convertREtoRG( void )
 
 	switch(m_algorithm) {
 	case BRZOZOWSKI_DERIVATION: {
-			grammar::Grammar grammar = regexp::convert::ToGrammarRightRGDerivation::convert(regexp);
+			grammar::RightRG grammar = regexp::convert::ToGrammarRightRGDerivation::convert(regexp);
 
 			std::chrono::measurements::end();
 			std::chrono::measurements::start("Output write", std::chrono::measurements::Type::AUXILARY);
@@ -223,7 +223,7 @@ void ConversionHandler::convertREtoRG( void )
 		}
 	case GLUSHKOV_NFA:
 	case DEFAULT: {
-			grammar::Grammar grammar = regexp::convert::ToGrammarRightRGGlushkov::convert(regexp);
+			grammar::RightRG grammar = regexp::convert::ToGrammarRightRGGlushkov::convert(regexp);
 
 			std::chrono::measurements::end();
 			std::chrono::measurements::start("Output write", std::chrono::measurements::Type::AUXILARY);
diff --git a/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp b/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp
index 7bcec948770bee3e08f040b247e2c184cdcb2e18..f5198d95b47d2026b7120121e60ff2861d2520c7 100644
--- a/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp
+++ b/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp
@@ -16,7 +16,7 @@ namespace automaton {
 
 namespace convert {
 
-grammar::Grammar ToGrammarLeftRG::convert(const automaton::Automaton& automaton) {
+grammar::LeftRG ToGrammarLeftRG::convert(const automaton::Automaton& automaton) {
 	return getInstance().dispatch(automaton.getData());
 }
 
diff --git a/alib2algo/src/automaton/convert/ToGrammarLeftRG.h b/alib2algo/src/automaton/convert/ToGrammarLeftRG.h
index 97994cd771612baa01fbd7c6f64201588d2f870a..7aacfe217cb4d16a9d8eafa0c4dab65622b32055 100644
--- a/alib2algo/src/automaton/convert/ToGrammarLeftRG.h
+++ b/alib2algo/src/automaton/convert/ToGrammarLeftRG.h
@@ -14,7 +14,6 @@
 #include <automaton/FSM/NFA.h>
 #include <automaton/FSM/DFA.h>
 
-#include <grammar/Grammar.h>
 #include <automaton/Automaton.h>
 
 namespace automaton {
@@ -25,13 +24,13 @@ namespace convert {
  * Finite automaton to right regular grammar converter.
  * Source: My own :)
  */
-class ToGrammarLeftRG : public std::SingleDispatch<grammar::Grammar, automaton::AutomatonBase> {
+class ToGrammarLeftRG : public std::SingleDispatch<grammar::LeftRG, automaton::AutomatonBase> {
 public:
 	/**
 	 * Performs conversion.
 	 * @return left regular grammar equivalent to source automaton.
 	 */
-	static grammar::Grammar convert(const automaton::Automaton& automaton);
+	static grammar::LeftRG convert(const automaton::Automaton& automaton);
 
 	static grammar::LeftRG convert(const automaton::NFA& automaton);
 	static grammar::LeftRG convert(const automaton::DFA& automaton);
diff --git a/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp b/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp
index 829aacc3ba2b826f2ede4598032acc57f749120e..e8a53e4cf23ba70f44f4f9ad8ba2f3b39994fa5c 100644
--- a/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp
+++ b/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp
@@ -13,7 +13,7 @@ namespace automaton {
 
 namespace convert {
 
-grammar::Grammar ToGrammarRightRG::convert(const automaton::Automaton& automaton) {
+grammar::RightRG ToGrammarRightRG::convert(const automaton::Automaton& automaton) {
 	return getInstance().dispatch(automaton.getData());
 }
 
diff --git a/alib2algo/src/automaton/convert/ToGrammarRightRG.h b/alib2algo/src/automaton/convert/ToGrammarRightRG.h
index 88cd9b30bec0fe4aac283624405e72acfbe1eab5..c06fd4ce8c36987dfa3429b434ce16a713b91ff1 100644
--- a/alib2algo/src/automaton/convert/ToGrammarRightRG.h
+++ b/alib2algo/src/automaton/convert/ToGrammarRightRG.h
@@ -14,7 +14,6 @@
 #include <automaton/FSM/NFA.h>
 #include <automaton/FSM/DFA.h>
 
-#include <grammar/Grammar.h>
 #include <automaton/Automaton.h>
 
 namespace automaton {
@@ -25,13 +24,13 @@ namespace convert {
  * Finite automaton to right regular grammar converter.
  * Source: Melichar 2.104
  */
-class ToGrammarRightRG : public std::SingleDispatch<grammar::Grammar, automaton::AutomatonBase> {
+class ToGrammarRightRG : public std::SingleDispatch<grammar::RightRG, automaton::AutomatonBase> {
 public:
 	/**
 	 * Performs conversion.
 	 * @return left regular grammar equivalent to source automaton.
 	 */
-	static grammar::Grammar convert(const automaton::Automaton& automaton);
+	static grammar::RightRG convert(const automaton::Automaton& automaton);
 
 	static grammar::RightRG convert(const automaton::NFA& automaton);
 	static grammar::RightRG convert(const automaton::DFA& automaton);
diff --git a/alib2algo/src/regexp/convert/ToAutomatonDerivation.h b/alib2algo/src/regexp/convert/ToAutomatonDerivation.h
index ee7acbe067fde7a04a21222c31e10aa5a036b7b4..2b6bc8b75a7d61f81ca5552f9aeda9315887016c 100644
--- a/alib2algo/src/regexp/convert/ToAutomatonDerivation.h
+++ b/alib2algo/src/regexp/convert/ToAutomatonDerivation.h
@@ -14,7 +14,6 @@
 #include <regexp/formal/FormalRegExp.h>
 #include <regexp/unbounded/UnboundedRegExp.h>
 
-#include <automaton/Automaton.h>
 #include <automaton/FSM/NFA.h>
 
 namespace regexp {
diff --git a/alib2algo/src/regexp/convert/ToAutomatonThompson.h b/alib2algo/src/regexp/convert/ToAutomatonThompson.h
index 70696124a27aaabde2719b6415eb79941046a733..d407db651aa815147ac46e57e031f5f578defa7f 100644
--- a/alib2algo/src/regexp/convert/ToAutomatonThompson.h
+++ b/alib2algo/src/regexp/convert/ToAutomatonThompson.h
@@ -13,7 +13,6 @@
 #include <regexp/RegExp.h>
 #include <regexp/formal/FormalRegExp.h>
 #include <regexp/unbounded/UnboundedRegExp.h>
-#include <automaton/Automaton.h>
 #include <automaton/FSM/EpsilonNFA.h>
 
 namespace regexp {
diff --git a/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.cpp b/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.cpp
index d36a6783cabdc54928898ff55929b469aea8f3ca..103bf0d44165ea96572d44d731e4dfb4ef3ecc42 100644
--- a/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.cpp
+++ b/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.cpp
@@ -22,7 +22,7 @@ namespace regexp {
 
 namespace convert {
 
-grammar::Grammar ToGrammarRightRGDerivation::convert(const regexp::RegExp& regexp) {
+grammar::RightRG ToGrammarRightRGDerivation::convert(const regexp::RegExp& regexp) {
 	return getInstance().dispatch(regexp.getData());
 }
 
diff --git a/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.h b/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.h
index bb29dc98c3b60614ab1445f6039e3d8dba084bcc..9c998e4258051fa6fddaffd9db5d39283cda5a4a 100644
--- a/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.h
+++ b/alib2algo/src/regexp/convert/ToGrammarRightRGDerivation.h
@@ -11,7 +11,6 @@
 #include <common/multipleDispatch.hpp>
 
 #include <grammar/Regular/RightRG.h>
-#include <grammar/Grammar.h>
 #include <regexp/RegExp.h>
 #include <regexp/formal/FormalRegExp.h>
 #include <regexp/unbounded/UnboundedRegExp.h>
@@ -24,13 +23,13 @@ namespace convert {
  * Converts reg. expression to right regular grammar using brzozowski derivation algorithm.
  * Source: Melichar 2.137
  */
-class ToGrammarRightRGDerivation : public std::SingleDispatch<grammar::Grammar, regexp::RegExpBase> {
+class ToGrammarRightRGDerivation : public std::SingleDispatch<grammar::RightRG, regexp::RegExpBase> {
 public:
 	/**
 	 * Performs conversion.
 	 * @return right regular grammar equivalent to source regexp.
 	 */
-	static grammar::Grammar convert(const regexp::RegExp& regexp);
+	static grammar::RightRG convert(const regexp::RegExp& regexp);
 
 	template <class T>
 	static grammar::RightRG convert(const T& regexp);
diff --git a/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp b/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp
index 3bb1d85cf51d685a34258bbfa055885e48f4a836..581cc34d4d6b492c2b62414f17e731ec87e9ac02 100644
--- a/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp
+++ b/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp
@@ -26,7 +26,7 @@ namespace regexp {
 
 namespace convert {
 
-grammar::Grammar ToGrammarRightRGGlushkov::convert(const regexp::RegExp& regexp) {
+grammar::RightRG ToGrammarRightRGGlushkov::convert(const regexp::RegExp& regexp) {
 	return getInstance().dispatch(regexp.getData());
 }
 
diff --git a/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.h b/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.h
index 6889f19dbe08276b70ded0da8a85ebabc05a1a90..77a91cfd5470452d79bd6a94ff79f7a55d7ce30f 100644
--- a/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.h
+++ b/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.h
@@ -10,7 +10,6 @@
 
 #include <common/multipleDispatch.hpp>
 
-#include <grammar/Grammar.h>
 #include <grammar/Regular/RightRG.h>
 
 #include <regexp/RegExp.h>
@@ -25,14 +24,14 @@ namespace convert {
  * Converts regular expression to right regular grammar using Glushkov algorithm.
  * Source: None yet.
  */
-class ToGrammarRightRGGlushkov : public std::SingleDispatch<grammar::Grammar, regexp::RegExpBase> {
+class ToGrammarRightRGGlushkov : public std::SingleDispatch<grammar::RightRG, regexp::RegExpBase> {
 public:
 	/**
 	 * Performs conversion.
 	 * @param regexp original regular expression
 	 * @return right regular grammar equivalent to source regexp.
 	 */
-	static grammar::Grammar convert(const regexp::RegExp& regexp);
+	static grammar::RightRG convert(const regexp::RegExp& regexp);
 
 	static grammar::RightRG convert(const regexp::FormalRegExp& regexp);
 	static grammar::RightRG convert(const regexp::UnboundedRegExp& regexp);