diff --git a/aconversions/src/aconversion/ConversionHandler.cpp b/aconversions/src/aconversion/ConversionHandler.cpp
index 7230d808b12b7ba6b80a32907ed7536b3fb72b5e..dc1a5aed19073b1a489ca1208a10fc8f1d7c3f47 100644
--- a/aconversions/src/aconversion/ConversionHandler.cpp
+++ b/aconversions/src/aconversion/ConversionHandler.cpp
@@ -83,7 +83,7 @@ void ConversionHandler::convertFSMtoRE( void )
 {
     const FSM fsm = AutomatonFactory::buildFSM( AutomatonParser::parse( m_tokens ) );
 
-    AbstractFAtoREConverter* conv;
+    IConversionRE* conv;
 
     switch( m_algorithm )
     {
@@ -115,7 +115,7 @@ void ConversionHandler::convertFSMtoRRG( void )
 {
     const FSM fsm = AutomatonFactory::buildFSM( AutomatonParser::parse( m_tokens ) );
 
-    AbstractFAtoRRGConverter* conv;
+    IConversionRRG* conv;
 
     switch( m_algorithm )
     {
@@ -132,7 +132,7 @@ void ConversionHandler::convertFSMtoLRG( void )
 {
     const FSM fsm = AutomatonFactory::buildFSM( AutomatonParser::parse( m_tokens ) );
 
-    AbstractFAtoLRGConverter* conv;
+    IConversionLRG* conv;
 
     switch( m_algorithm )
     {
@@ -150,7 +150,7 @@ void ConversionHandler::convertFSMtoLRG( void )
 void ConversionHandler::convertREtoFSM( void )
 {
     const RegExp regexp = RegExpParser::parse( m_tokens );
-    AbstractREtoFAConverter* conv;
+    IConversionFSM* conv;
 
     switch( m_algorithm )
     {
@@ -183,7 +183,7 @@ void ConversionHandler::convertREtoRG( void )
 void ConversionHandler::convertREtoRRG( void )
 {
     const RegExp regexp = RegExpParser::parse( m_tokens );
-    AbstractREtoRRGConverter* conv;
+    IConversionRRG* conv;
 
     switch( m_algorithm )
     {
@@ -247,7 +247,7 @@ void ConversionHandler::convertLRGtoFSM( void )
 {
     const LeftRegularGrammar lrg = GrammarFactory::buildLeftRegularGrammar( GrammarParser::parse( m_tokens ) );
 
-    AbstractRGtoFAConverter* conv;
+    IConversionFSM* conv;
 
     switch( m_algorithm )
     {
@@ -264,7 +264,7 @@ void ConversionHandler::convertRRGtoFSM( void )
 {
     const RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( GrammarParser::parse( m_tokens ) );
 
-    AbstractRGtoFAConverter* conv;
+    IConversionFSM* conv;
 
     switch( m_algorithm )
     {
@@ -281,7 +281,7 @@ void ConversionHandler::convertLRGtoRE( void )
 {
     const LeftRegularGrammar lrg = GrammarFactory::buildLeftRegularGrammar( GrammarParser::parse( m_tokens ) );
 
-    AbstractRGtoREConverter* conv;
+    IConversionRE* conv;
 
     switch( m_algorithm )
     {
@@ -299,7 +299,7 @@ void ConversionHandler::convertRRGtoRE( void )
 {
     const RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( GrammarParser::parse( m_tokens ) );
 
-    AbstractRGtoREConverter* conv;
+    IConversionRE* conv;
 
     switch( m_algorithm )
     {
@@ -317,7 +317,7 @@ void ConversionHandler::convertLRGtoRRG( void )
 {
     const LeftRegularGrammar lrg = GrammarFactory::buildLeftRegularGrammar( GrammarParser::parse( m_tokens ) );
 
-    AbstractLRGtoRRGConverter* conv;
+    IConversionRRG* conv;
 
     switch( m_algorithm )
     {
@@ -334,7 +334,7 @@ void ConversionHandler::convertRRGtoLRG( void )
 {
     const RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( GrammarParser::parse( m_tokens ) );
 
-    AbstractRRGtoLRGConverter* conv;
+    IConversionLRG* conv;
 
     switch( m_algorithm )
     {
diff --git a/aconversions/src/fa2re/AbstractFAtoREConverter.cpp b/aconversions/src/fa2re/AbstractFAtoREConverter.cpp
deleted file mode 100644
index 7d056806ed478f107f6545fbfce21fc07be62cc0..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2re/AbstractFAtoREConverter.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "AbstractFAtoREConverter.h"
-
-using namespace automaton;
-using namespace regexp;
-
-namespace conversions
-{
-
-AbstractFAtoREConverter::~AbstractFAtoREConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/fa2re/AbstractFAtoREConverter.h b/aconversions/src/fa2re/AbstractFAtoREConverter.h
deleted file mode 100644
index dbc23772567d4d046237ae93f6a6af73f07187f2..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2re/AbstractFAtoREConverter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __ABSTRACTFATORECONVERTER_H__
-#define __ABSTRACTFATORECONVERTER_H__
-
-#include <automaton/FSM/FSM.h>
-#include <regexp/RegExp.h>
-#include <AlibException.h>
-
-#include "../include/macros.h"
-#include "../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Interface for finite automaton to regular expression conversion.
- */
-class AbstractFAtoREConverter : public Conversion
-{
-public:
-    /**
-     * @return regular expression equivalent to source automata.
-     */
-    virtual regexp::RegExp convert( void ) = 0;
-
-    virtual ~AbstractFAtoREConverter( void );
-
-};
-
-} /* namespace conversions */
-
-#endif /* __ABSTRACTFATORECONVERTER_H__ */
diff --git a/aconversions/src/fa2re/BrzozowskiAlgebraic.h b/aconversions/src/fa2re/BrzozowskiAlgebraic.h
index dbfee0b4bccb684b19af5ec083b24d2fdda969de..3256ac36aa01bd8f99b6be091288446ab74da054 100644
--- a/aconversions/src/fa2re/BrzozowskiAlgebraic.h
+++ b/aconversions/src/fa2re/BrzozowskiAlgebraic.h
@@ -13,8 +13,10 @@
 #include <queue>
 
 #include <regexp/RegExpElements.h>
+#include <automaton/FSM/FSM.h>
 
-#include "AbstractFAtoREConverter.h"
+#include "../include/macros.h"
+#include "../interface/IConversionRE.h"
 #include "../shared/equations/RightRegularEquationSolver.h"
 
 namespace conversions
@@ -27,7 +29,7 @@ namespace conversions
  * Converts FA to RE using Brzozowski's algebraic method using right regular equations.
  * Source : Melichar 2.122
  */
-class BrzozowskiAlgebraic: public AbstractFAtoREConverter
+class BrzozowskiAlgebraic: public IConversionRE
 {
 public:
     /**
diff --git a/aconversions/src/fa2re/StateElimination.h b/aconversions/src/fa2re/StateElimination.h
index 6c02f2eb0bff454242835d2c71122c77d18a0438..95d8b300c562da8fd67510950c416e4d285ae932 100644
--- a/aconversions/src/fa2re/StateElimination.h
+++ b/aconversions/src/fa2re/StateElimination.h
@@ -14,7 +14,8 @@
 #include <regexp/RegExp.h>
 #include <regexp/RegExpElements.h>
 
-#include "AbstractFAtoREConverter.h"
+#include "../interface/IConversionRE.h"
+#include "../include/macros.h"
 
 #include "RegExpOptimize.h"
 
@@ -25,7 +26,7 @@ namespace conversions
  * Converts FSM to RE using State Elimination algorithm.
  * Source: Melichar 2.118
  */
-class StateElimination: public AbstractFAtoREConverter
+class StateElimination: public IConversionRE
 {
 public:
     /**
diff --git a/aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp b/aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp
deleted file mode 100644
index 499919b3514cea4feaa8c39ebbca65a76dc20d7f..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * AbstractFAtoRGConverter.cpp
- *
- *  Created on: 27. 2. 2014
- *      Author: tomas
- */
-
-#include "AbstractFAtoRGConverter.h"
-
-using namespace alib;
-using namespace automaton;
-using namespace grammar;
-
-namespace conversions
-{
-
-AbstractFAtoRGConverter::~AbstractFAtoRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/fa2rg/AbstractFAtoRGConverter.h b/aconversions/src/fa2rg/AbstractFAtoRGConverter.h
deleted file mode 100644
index 76af14f1c659cfa4ecf18ee9ed6e7b4191a187bc..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2rg/AbstractFAtoRGConverter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * AbstractFAtoRGConverter.h
- *
- *  Created on: 27. 2. 2014
- *      Author: tomas
- */
-
-#ifndef ABSTRACTFATORGCONVERTER_H_
-#define ABSTRACTFATORGCONVERTER_H_
-
-#include <automaton/FSM/FSM.h>
-#include <grammar/Regular/RegularGrammar.h>
-#include <AlibException.h>
-
-#include "../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Abstract finite automata to regular grammar conversion.
- */
-class AbstractFAtoRGConverter : public Conversion
-{
-public:
-    ~AbstractFAtoRGConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* ABSTRACTFATORGCONVERTER_H_ */
diff --git a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp b/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp
deleted file mode 100644
index e6b531f79a1bb867f0489cd192b15acdb01f08be..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "AbstractFAtoLRGConverter.h"
-
-namespace conversions
-{
-
-AbstractFAtoLRGConverter::~AbstractFAtoLRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h b/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h
deleted file mode 100644
index 38b61b7a9959079e018120937730975e059d40fc..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __ABSTRACTFATOLRGCONVERTER_H__
-#define __ABSTRACTFATOLRGCONVERTER_H__
-
-#include <automaton/FSM/FSM.h>
-#include <grammar/Regular/LeftRegularGrammar.h>
-#include <AlibException.h>
-
-#include "../../include/macros.h"
-#include "../AbstractFAtoRGConverter.h"
-
-namespace conversions
-{
-
-/**
- * Abstract finite automata to right regular grammar.
- */
-class AbstractFAtoLRGConverter : public AbstractFAtoRGConverter
-{
-public:
-    /**
-     * @return left regular grammar equivalent to source automata.
-     */
-    virtual grammar::LeftRegularGrammar convert( void ) = 0;
-    virtual ~AbstractFAtoLRGConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* __ABSTRACTFATOLRGCONVERTER_H__ */
diff --git a/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h b/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h
index 4bc20c401d27ff3b1998972e47638daf494d17a5..ad0d456a8c7c707f9ac8b43bdcc426ba8d846cb3 100644
--- a/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h
+++ b/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h
@@ -5,8 +5,10 @@
 
 #include <grammar/Regular/LeftRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
+#include <AlibException.h>
 
-#include "AbstractFAtoLRGConverter.h"
+#include "../../interface/IConversionLRG.h"
+#include "../../include/macros.h"
 
 namespace conversions
 {
@@ -15,7 +17,7 @@ namespace conversions
  * Finite automata to right regular grammar converter.
  * Source: My own :)
  */
-class FAtoLRGConverter: public AbstractFAtoLRGConverter
+class FAtoLRGConverter: public IConversionLRG
 {
 public:
     /**
diff --git a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp b/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp
deleted file mode 100644
index 1af46b4f827289835a681c9d5e514b596afc4712..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "AbstractFAtoRRGConverter.h"
-
-namespace conversions
-{
-
-AbstractFAtoRRGConverter::~AbstractFAtoRRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h b/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h
deleted file mode 100644
index 6df8f25e871256a83eb74a433bb413bee8dd514c..0000000000000000000000000000000000000000
--- a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __ABSTRACTFATORRGCONVERTER_H__
-#define __ABSTRACTFATORRGCONVERTER_H__
-
-#include <automaton/FSM/FSM.h>
-#include <grammar/Regular/RightRegularGrammar.h>
-#include <AlibException.h>
-
-#include "../../include/macros.h"
-#include "../AbstractFAtoRGConverter.h"
-
-namespace conversions
-{
-
-/**
- * Abstract finite automata to right regular grammar.
- */
-class AbstractFAtoRRGConverter : public AbstractFAtoRGConverter
-{
-public:
-    /**
-     * @return right regular grammar equivalent to source automata.
-     */
-    virtual grammar::RightRegularGrammar convert( void ) = 0;
-
-    virtual ~AbstractFAtoRRGConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* __ABSTRACTFATORRGCONVERTER_H__ */
diff --git a/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h b/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h
index dc759f8488bd845c84c0fc393601aed6f34a617d..2a23de835e35079ceade9ea2911b356406353400 100644
--- a/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h
+++ b/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h
@@ -5,8 +5,10 @@
 
 #include <grammar/Regular/RightRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
+#include <AlibException.h>
 
-#include "AbstractFAtoRRGConverter.h"
+#include "../../interface/IConversionRRG.h"
+#include "../../include/macros.h"
 
 namespace conversions
 {
@@ -15,7 +17,7 @@ namespace conversions
  * Finite automata to right regular grammar converter.
  * Source: Melichar 2.104
  */
-class FAtoRRGConverter : public AbstractFAtoRRGConverter
+class FAtoRRGConverter : public IConversionRRG
 {
 public:
     /**
diff --git a/aconversions/src/abstract/Conversion.cpp b/aconversions/src/interface/Conversion.cpp
similarity index 100%
rename from aconversions/src/abstract/Conversion.cpp
rename to aconversions/src/interface/Conversion.cpp
diff --git a/aconversions/src/abstract/Conversion.h b/aconversions/src/interface/Conversion.h
similarity index 100%
rename from aconversions/src/abstract/Conversion.h
rename to aconversions/src/interface/Conversion.h
diff --git a/aconversions/src/interface/IConversionFSM.cpp b/aconversions/src/interface/IConversionFSM.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..261d6827327e181201f014ffddaaaba708f9ec6d
--- /dev/null
+++ b/aconversions/src/interface/IConversionFSM.cpp
@@ -0,0 +1,18 @@
+/*
+ * IConversionFSM.cpp
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#include "IConversionFSM.h"
+
+namespace conversions
+{
+
+IConversionFSM::~IConversionFSM( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/interface/IConversionFSM.h b/aconversions/src/interface/IConversionFSM.h
new file mode 100644
index 0000000000000000000000000000000000000000..62ac23c4046530c45ded7dfab67121d761fc79bc
--- /dev/null
+++ b/aconversions/src/interface/IConversionFSM.h
@@ -0,0 +1,35 @@
+/*
+ * IConversionFSM.h
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#ifndef __ICONVERSIONFSM_H__
+#define __ICONVERSIONFSM_H__
+
+#include "Conversion.h"
+
+#include <automaton/FSM/FSM.h>
+
+namespace conversions
+{
+
+/**
+ * Interface for conversion to finite automaton.
+ */
+class IConversionFSM : public Conversion
+{
+public:
+    /**
+     * @return fsm equivalent to input.
+     */
+    virtual automaton::FSM convert( void ) = 0;
+
+    virtual ~IConversionFSM( void );
+
+};
+
+} /* namespace conversions */
+
+#endif /* __ICONVERSIONFSM_H__ */
diff --git a/aconversions/src/interface/IConversionLRG.cpp b/aconversions/src/interface/IConversionLRG.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..47f03aec8887c3661a28c6e0a0af05d0d45bbf16
--- /dev/null
+++ b/aconversions/src/interface/IConversionLRG.cpp
@@ -0,0 +1,18 @@
+/*
+ * IConversionLRG.cpp
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#include "IConversionLRG.h"
+
+namespace conversions
+{
+
+IConversionLRG::~IConversionLRG( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/interface/IConversionLRG.h b/aconversions/src/interface/IConversionLRG.h
new file mode 100644
index 0000000000000000000000000000000000000000..f3e56bbe87f86d92833c9d5f2f8c17cfcb8c764e
--- /dev/null
+++ b/aconversions/src/interface/IConversionLRG.h
@@ -0,0 +1,35 @@
+/*
+ * IConversionLRG.h
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#ifndef __ICONVERSIONLRG_H__
+#define __ICONVERSIONLRG_H__
+
+#include "Conversion.h"
+
+#include <grammar/Regular/LeftRegularGrammar.h>
+
+namespace conversions
+{
+
+/**
+ * Interface for conversion to left regular grammar.
+ */
+class IConversionLRG : public Conversion
+{
+public:
+    /**
+     * @return rrg equivalent to input.
+     */
+    virtual grammar::LeftRegularGrammar convert( void ) = 0;
+
+    virtual ~IConversionLRG( void );
+
+};
+
+} /* namespace conversions */
+
+#endif /* __ICONVERSIONLRG_H__ */
diff --git a/aconversions/src/interface/IConversionRE.cpp b/aconversions/src/interface/IConversionRE.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..03c3c4c1ec2de89ad9b07c8294a712f5a099602d
--- /dev/null
+++ b/aconversions/src/interface/IConversionRE.cpp
@@ -0,0 +1,18 @@
+/*
+ * IConversionRE.cpp
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#include "IConversionRE.h"
+
+namespace conversions
+{
+
+IConversionRE::~IConversionRE( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/interface/IConversionRE.h b/aconversions/src/interface/IConversionRE.h
new file mode 100644
index 0000000000000000000000000000000000000000..70658fa3f5a83b982290a405584b7d0f8ce85cb6
--- /dev/null
+++ b/aconversions/src/interface/IConversionRE.h
@@ -0,0 +1,35 @@
+/*
+ * IConversionRE.h
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#ifndef __ICONVERSIONRE_H__
+#define __ICONVERSIONRE_H__
+
+#include "Conversion.h"
+
+#include <regexp/RegExp.h>
+
+namespace conversions
+{
+
+/**
+ * Interface for conversion to regexp.
+ */
+class IConversionRE : public Conversion
+{
+public:
+    /**
+     * @return regexp equivalent to input.
+     */
+    virtual regexp::RegExp convert( void ) = 0;
+
+    virtual ~IConversionRE( void );
+
+};
+
+} /* namespace conversions */
+
+#endif /* __ICONVERSIONRE_H__ */
diff --git a/aconversions/src/interface/IConversionRRG.cpp b/aconversions/src/interface/IConversionRRG.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b358409101151b2a696b0084aab822bd018d47d5
--- /dev/null
+++ b/aconversions/src/interface/IConversionRRG.cpp
@@ -0,0 +1,18 @@
+/*
+ * IConversionRRG.cpp
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#include "IConversionRRG.h"
+
+namespace conversions
+{
+
+IConversionRRG::~IConversionRRG( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/interface/IConversionRRG.h b/aconversions/src/interface/IConversionRRG.h
new file mode 100644
index 0000000000000000000000000000000000000000..40a5382747979938b1886c75ae9cd8f0648c2f5f
--- /dev/null
+++ b/aconversions/src/interface/IConversionRRG.h
@@ -0,0 +1,35 @@
+/*
+ * IConversionRRG.h
+ *
+ *  Created on: 19. 4. 2014
+ *      Author: tomas
+ */
+
+#ifndef __ICONVERSIONRRG_H__
+#define __ICONVERSIONRRG_H__
+
+#include "Conversion.h"
+
+#include <grammar/Regular/RightRegularGrammar.h>
+
+namespace conversions
+{
+
+/**
+ * Interface for conversion to right regular grammar.
+ */
+class IConversionRRG : public Conversion
+{
+public:
+    /**
+     * @return rrg equivalent to input.
+     */
+    virtual grammar::RightRegularGrammar convert( void ) = 0;
+
+    virtual ~IConversionRRG( void );
+
+};
+
+} /* namespace conversions */
+
+#endif /* __ICONVERSIONRRG_H__ */
diff --git a/aconversions/src/re2fa/AbstractREtoFAConverter.cpp b/aconversions/src/re2fa/AbstractREtoFAConverter.cpp
deleted file mode 100644
index c99bff419f1f15c9bf9fa6990f2f4790479a4ed7..0000000000000000000000000000000000000000
--- a/aconversions/src/re2fa/AbstractREtoFAConverter.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "AbstractREtoFAConverter.h"
-
-using namespace regexp;
-
-namespace conversions
-{
-
-AbstractREtoFAConverter::~AbstractREtoFAConverter(void)
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/re2fa/AbstractREtoFAConverter.h b/aconversions/src/re2fa/AbstractREtoFAConverter.h
deleted file mode 100644
index cfea00444534e3bd8ffe398cfd3e901543b6629a..0000000000000000000000000000000000000000
--- a/aconversions/src/re2fa/AbstractREtoFAConverter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __ABSTRACTRETOFACONVERTER_H__
-#define __ABSTRACTRETOFACONVERTER_H__
-
-#include <regexp/RegExp.h>
-#include <automaton/FSM/FSM.h>
-
-#include <AlibException.h>
-
-#include "../include/macros.h"
-#include "../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Interface for regular expression to finite automata conversion.
- */
-class AbstractREtoFAConverter : public Conversion
-{
-public:
-    /**
-     * @return FSM equivalent to original regular expression.
-     */
-    virtual automaton::FSM convert( void ) = 0;
-
-    virtual ~AbstractREtoFAConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* __ABSTRACTRETOFACONVERTER_H__ */
diff --git a/aconversions/src/re2fa/Brzozowski.h b/aconversions/src/re2fa/Brzozowski.h
index e145355cd7752cacf7f5c938859978aca7943fd2..c2264b88a516f8f09e02b8d5a7205e1b41dab2c4 100644
--- a/aconversions/src/re2fa/Brzozowski.h
+++ b/aconversions/src/re2fa/Brzozowski.h
@@ -16,8 +16,9 @@
 #include <automaton/State.h>
 #include <AlibException.h>
 
-#include "AbstractREtoFAConverter.h"
+#include "../interface/IConversionFSM.h"
 #include "../shared/Hexavigesimal.h"
+#include "../include/macros.h"
 
 #include "RegExpDerivation.h"
 #include "RegExpOptimize.h"
@@ -29,7 +30,7 @@ namespace conversions
  * Converts regular expression to finite automata using Brzozowski algorithm (derivations of regular expressions).
  * Source: Melichar 2.110
  */
-class Brzozowski : public AbstractREtoFAConverter
+class Brzozowski : public IConversionFSM
 {
 public:
     /**
diff --git a/aconversions/src/re2fa/Glushkov.h b/aconversions/src/re2fa/Glushkov.h
index 59faa884b443e8f6fe7e078025fb464fd6af53bc..b6fa54e939695b8bb4b5ddd026d7faf101360737 100644
--- a/aconversions/src/re2fa/Glushkov.h
+++ b/aconversions/src/re2fa/Glushkov.h
@@ -15,7 +15,7 @@
 #include <regexp/RegExp.h>
 #include <regexp/RegExpElements.h>
 
-#include "AbstractREtoFAConverter.h"
+#include "../interface/IConversionFSM.h"
 #include "../shared/glushkov/GlushkovTraversal.h"
 
 namespace conversions
@@ -25,7 +25,7 @@ namespace conversions
  * Converts regular expression to finite automata using Glushkov's NFA construction algorithm.
  * Source: Melichar 2.107
  */
-class Glushkov : public AbstractREtoFAConverter
+class Glushkov : public IConversionFSM
 {
 public:
     /**
diff --git a/aconversions/src/re2fa/Thompson.h b/aconversions/src/re2fa/Thompson.h
index 3e1455415fb29c7821431ad9cac3d6477d2cd08c..d4633afe2c4071e47900a3e596875512dbf86ced 100644
--- a/aconversions/src/re2fa/Thompson.h
+++ b/aconversions/src/re2fa/Thompson.h
@@ -11,11 +11,14 @@
 #include <set>
 #include <vector>
 
+#include <AlibException.h>
 #include <automaton/FSM/FSM.h>
 #include <regexp/RegExp.h>
 #include <regexp/RegExpElements.h>
 
-#include "AbstractREtoFAConverter.h"
+#include "../interface/IConversionFSM.h"
+#include "../include/macros.h"
+
 
 namespace conversions
 {
@@ -28,7 +31,7 @@ namespace conversions
  *  http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.7450&rep=rep1&type=ps
  *  Melichar 2.112
  */
-class Thompson : public AbstractREtoFAConverter
+class Thompson : public IConversionFSM
 {
 public:
     /**
diff --git a/aconversions/src/re2rg/AbstractREtoRGConverter.cpp b/aconversions/src/re2rg/AbstractREtoRGConverter.cpp
deleted file mode 100644
index 1d5cff0f8306d5ce4fdfe35eefb51a3b1b22baba..0000000000000000000000000000000000000000
--- a/aconversions/src/re2rg/AbstractREtoRGConverter.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * AbstractREtoRGConverter.cpp
- *
- *  Created on: 5. 3. 2014
- *      Author: tomas
- */
-
-#include "AbstractREtoRGConverter.h"
-
-using namespace regexp;
-
-namespace conversions
-{
-
-AbstractREtoRGConverter::~AbstractREtoRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/re2rg/AbstractREtoRGConverter.h b/aconversions/src/re2rg/AbstractREtoRGConverter.h
deleted file mode 100644
index b18bb971529db20a4ee93ced03f202e28e65cc42..0000000000000000000000000000000000000000
--- a/aconversions/src/re2rg/AbstractREtoRGConverter.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * AbstractREtoRGConverter.h
- *
- *  Created on: 5. 3. 2014
- *      Author: tomas
- */
-
-#ifndef ABSTRACTRETORGCONVERTER_H_
-#define ABSTRACTRETORGCONVERTER_H_
-
-#include <regexp/RegExp.h>
-
-#include "../include/macros.h"
-#include "../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Interface for regular expression to regular grammar conversion.
- */
-class AbstractREtoRGConverter : public Conversion
-{
-public:
-    virtual ~AbstractREtoRGConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* ABSTRACTRETORGCONVERTER_H_ */
diff --git a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp b/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp
deleted file mode 100644
index 2012a5a800e24b028b0995e3e813f62c46ad6108..0000000000000000000000000000000000000000
--- a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * AbstractREtoRRGConverter.cpp
- *
- *  Created on: 5. 3. 2014
- *      Author: tomas
- */
-
-#include "AbstractREtoRRGConverter.h"
-
-using namespace regexp;
-
-namespace conversions
-{
-
-AbstractREtoRRGConverter::~AbstractREtoRRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h b/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h
deleted file mode 100644
index 36cd9224f2ff24b940f21b4b68d4c656263e7148..0000000000000000000000000000000000000000
--- a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * AbstractREtoRRGConverter.h
- *
- *  Created on: 5. 3. 2014
- *      Author: tomas
- */
-
-#ifndef ABSTRACTRETORRGCONVERTER_H_
-#define ABSTRACTRETORRGCONVERTER_H_
-
-#include <regexp/RegExp.h>
-#include <grammar/Regular/RightRegularGrammar.h>
-
-#include "../../include/macros.h"
-#include "../AbstractREtoRGConverter.h"
-
-namespace conversions
-{
-
-/**
- * Interface for regular epxression to right regular grammar conversion.
- */
-class AbstractREtoRRGConverter: public AbstractREtoRGConverter
-{
-public:
-    virtual ~AbstractREtoRRGConverter( void );
-
-    /**
-     * @return right regular grammar equivalent to source regexp.
-     */
-    virtual grammar::RightRegularGrammar convert( void ) = 0;
-};
-
-} /* namespace conversions */
-
-#endif /* ABSTRACTRETORRGCONVERTER_H_ */
diff --git a/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h b/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h
index 83f1218b682da0e8f1322227f016d633b2ecc206..28be812b35c18084055e8f06ea8378f05359b312 100644
--- a/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h
+++ b/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h
@@ -16,7 +16,8 @@
 #include <grammar/Regular/RightRegularGrammar.h>
 #include <regexp/RegExp.h>
 
-#include "AbstractREtoRRGConverter.h"
+#include "../../include/macros.h"
+#include "../../interface/IConversionRRG.h"
 #include "../../shared/Hexavigesimal.h"
 
 #include "RegExpOptimize.h"
@@ -29,7 +30,7 @@ namespace conversions
  * Converts reg. expression to right regular grammar using brzozowski derivation algorithm.
  * Source: Melichar 2.137
  */
-class BrzozowskiDerivationRRG : public AbstractREtoRRGConverter
+class BrzozowskiDerivationRRG : public IConversionRRG
 {
 public:
     /**
diff --git a/aconversions/src/re2rg/re2rrg/GlushkovRRG.h b/aconversions/src/re2rg/re2rrg/GlushkovRRG.h
index e7e10807c74f656cadd1900621bb58e881628eff..fa9b74747070e8bcb1dcd228f3616f8f947590f9 100644
--- a/aconversions/src/re2rg/re2rrg/GlushkovRRG.h
+++ b/aconversions/src/re2rg/re2rrg/GlushkovRRG.h
@@ -13,8 +13,8 @@
 #include <grammar/Regular/RightRegularGrammar.h>
 #include <regexp/RegExp.h>
 
+#include "../../interface/IConversionRRG.h"
 #include "../../shared/glushkov/GlushkovTraversal.h"
-#include "AbstractREtoRRGConverter.h"
 
 namespace conversions
 {
@@ -23,7 +23,7 @@ namespace conversions
  * Converts regular expression to right regular grammar using Glushkov algorithm.
  * Source: None yet.
  */
-class GlushkovRRG : public AbstractREtoRRGConverter
+class GlushkovRRG : public IConversionRRG
 {
 public:
     /**
diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp b/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp
deleted file mode 100644
index 4dce814a342ef1021e90f96dd1d87122f9e2d86e..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "AbstractRGtoFAConverter.h"
-
-namespace conversions
-{
-
-AbstractRGtoFAConverter::~AbstractRGtoFAConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h b/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
deleted file mode 100644
index 6a93df1afdaf16ff4d6edfdb0487f2e4468dafe9..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __ABSTRACTRGTOFACONVERTER_H__
-#define __ABSTRACTRGTOFACONVERTER_H__
-
-#include <automaton/FSM/FSM.h>
-#include <AlibException.h>
-
-#include "../include/macros.h"
-#include "../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Interface for regular grammar to finite automaton conversion.
- */
-class AbstractRGtoFAConverter : public Conversion
-{
-public:
-    /**
-     * @return FSM equivalent to source grammar.
-     */
-    virtual automaton::FSM convert( void ) = 0;
-    virtual ~AbstractRGtoFAConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* __ABSTRACTRGTOFACONVERTER_H__ */
diff --git a/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h
index 19f42c89051b7bcf74b30ab2d9a26cd7c7213c01..e468dd82e6ccd97c6550113153455163ae7fa8b1 100644
--- a/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h
@@ -4,7 +4,7 @@
 #include <grammar/Regular/LeftRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
 
-#include "../AbstractRGtoFAConverter.h"
+#include "../../interface/IConversionFSM.h"
 
 namespace conversions
 {
@@ -13,7 +13,7 @@ namespace conversions
  * Converts left regular grammar to finite automata.
  * Source: Melichar 2.102.
  */
-class LRGtoFAConverter : public AbstractRGtoFAConverter
+class LRGtoFAConverter : public IConversionFSM
 {
 public:
     /**
diff --git a/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h
index 854790c7616c43ec0d081f3f70fdaf20021fecc6..c18a0d398fbfdeb129de28d5cee1c0aa8de53fad 100644
--- a/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h
@@ -4,7 +4,7 @@
 #include <grammar/Regular/RightRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
 
-#include "../AbstractRGtoFAConverter.h"
+#include "../../interface/IConversionFSM.h"
 
 namespace conversions
 {
@@ -13,7 +13,7 @@ namespace conversions
  * Converts left regular grammar to finite automata.
  * Source: Melichar 2.98
  */
-class RRGtoFAConverter : public AbstractRGtoFAConverter
+class RRGtoFAConverter : public IConversionFSM
 {
 public:
     /**
diff --git a/aconversions/src/rg2re/AbstractRGtoREConverter.cpp b/aconversions/src/rg2re/AbstractRGtoREConverter.cpp
deleted file mode 100644
index d6df0214fab43672f8fd91193ca6a9159e058c53..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2re/AbstractRGtoREConverter.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * AbstractRGtoREConverter.cpp
- *
- *  Created on: 4. 3. 2014
- *      Author: tomas
- */
-
-#include "AbstractRGtoREConverter.h"
-
-namespace conversions
-{
-
-AbstractRGtoREConverter::~AbstractRGtoREConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/rg2re/AbstractRGtoREConverter.h b/aconversions/src/rg2re/AbstractRGtoREConverter.h
deleted file mode 100644
index bfc2ea1310db6a99338500016cec453a30bea525..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2re/AbstractRGtoREConverter.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * AbstractRGtoREConverter.h
- *
- *  Created on: 4. 3. 2014
- *      Author: tomas
- */
-
-#ifndef ABSTRACTRGTORECONVERTER_H_
-#define ABSTRACTRGTORECONVERTER_H_
-
-#include <regexp/RegExp.h>
-
-#include "../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Interface for regular grammar to regular expression conversion.
- */
-class AbstractRGtoREConverter : public Conversion
-{
-public:
-    /**
-     * @return regexp equivalent to source regular grammar.
-     */
-    virtual regexp::RegExp convert( void ) = 0;
-
-    virtual ~AbstractRGtoREConverter( void );
-};
-
-} /* namespace conversions */
-
-#endif /* ABSTRACTRGTORECONVERTER_H_ */
diff --git a/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h
index 53e06251518a6288303f11b5c1d94968de639537..dcd36c4425ecf42eeb0efe6ac85540c10fe7edc1 100644
--- a/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h
+++ b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h
@@ -12,12 +12,12 @@
 #include <regexp/RegExp.h>
 
 #include "../../shared/equations/LeftRegularEquationSolver.h"
-#include "../AbstractRGtoREConverter.h"
+#include "../../interface/IConversionRE.h"
 
 namespace conversions
 {
 
-class LRGAlgebraic: public AbstractRGtoREConverter
+class LRGAlgebraic: public IConversionRE
 {
 public:
     /**
diff --git a/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h
index cb40fea3e417dea00c95b9bb323d266f37f78dd7..3b6f663a468bf739628472ca84ea5e4ac07fcfaa 100644
--- a/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h
+++ b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h
@@ -12,12 +12,12 @@
 #include <regexp/RegExp.h>
 
 #include "../../shared/equations/RightRegularEquationSolver.h"
-#include "../AbstractRGtoREConverter.h"
+#include "../../interface/IConversionRE.h"
 
 namespace conversions
 {
 
-class RRGAlgebraic: public AbstractRGtoREConverter
+class RRGAlgebraic: public IConversionRE
 {
 public:
     /**
diff --git a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp b/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp
deleted file mode 100644
index 212a0b1e22adbbdcc353890ea2861aae6f321975..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * AbstractLRGtoRRGConverter.cpp
- *
- *  Created on: 8. 3. 2014
- *      Author: tomas
- */
-
-#include "AbstractLRGtoRRGConverter.h"
-
-using namespace grammar;
-
-namespace conversions
-{
-
-AbstractLRGtoRRGConverter::~AbstractLRGtoRRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h b/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h
deleted file mode 100644
index bcbbe93676bb5f6f1342bf7f423f9aebf401fbe6..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * AbstractLRGtoRRGConverter.h
- *
- *  Created on: 8. 3. 2014
- *      Author: tomas
- */
-
-#ifndef ABSTRACTLRGTORRGCONVERTER_H_
-#define ABSTRACTLRGTORRGCONVERTER_H_
-
-#include <grammar/Regular/LeftRegularGrammar.h>
-#include <grammar/Regular/RightRegularGrammar.h>
-
-#include "../../abstract/Conversion.h"
-
-namespace conversions
-{
-
-/**
- * Abstract left regular grammar to right regular grammar converter.
- */
-class AbstractLRGtoRRGConverter : public Conversion
-{
-public:
-    virtual ~AbstractLRGtoRRGConverter( void );
-
-    /**
-     * @return right regular grammar which is equivalent to source left regular grammar.
-     */
-    virtual grammar::RightRegularGrammar convert( void ) = 0;
-};
-
-} /* namespace conversions */
-
-#endif /* ABSTRACTLRGTORRGCONVERTER_H_ */
diff --git a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h b/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h
index 8e65008481d9592e865e93c4370acb051fb792bf..0ba1f9f0ec7bd4c706c8a7b227f9fcb42a8e2bd7 100644
--- a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h
+++ b/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h
@@ -8,12 +8,15 @@
 #ifndef LEFTTORIGHTREGULARGRAMMAR_H_
 #define LEFTTORIGHTREGULARGRAMMAR_H_
 
-#include "AbstractLRGtoRRGConverter.h"
+#include <grammar/Regular/LeftRegularGrammar.h>
+#include <grammar/Regular/RightRegularGrammar.h>
+
+#include "../../interface/IConversionRRG.h"
 
 namespace conversions
 {
 
-class LeftToRightRegularGrammar: public AbstractLRGtoRRGConverter
+class LeftToRightRegularGrammar: public IConversionRRG
 {
 public:
     /**
diff --git a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp b/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp
deleted file mode 100644
index c904f0c912e98c0a94364eae0a9f74e2720f63da..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * AbstractRRGtoLRGConverter.cpp
- *
- *  Created on: 8. 3. 2014
- *      Author: tomas
- */
-
-#include "AbstractRRGtoLRGConverter.h"
-
-using namespace grammar;
-
-namespace conversions
-{
-
-AbstractRRGtoLRGConverter::~AbstractRRGtoLRGConverter( void )
-{
-
-}
-
-} /* namespace conversions */
diff --git a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h b/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h
deleted file mode 100644
index ce556b30869e2a1fd722aac7eb5f581e16e4c58d..0000000000000000000000000000000000000000
--- a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * AbstractRRGtoLRGConverter.h
- *
- *  Created on: 8. 3. 2014
- *      Author: tomas
- */
-
-#ifndef ABSTRACTRRGTOLRGCONVERTER_H_
-#define ABSTRACTRRGTOLRGCONVERTER_H_
-
-#include "../../abstract/Conversion.h"
-
-#include <grammar/Regular/LeftRegularGrammar.h>
-#include <grammar/Regular/RightRegularGrammar.h>
-
-namespace conversions
-{
-
-/**
- * Abstract right regular grammar to left regular grammar converter.
- */
-class AbstractRRGtoLRGConverter: public Conversion
-{
-public:
-    virtual ~AbstractRRGtoLRGConverter( void );
-
-    /**
-     * @return left regular grammar which is equivalent to source right regular grammar.
-     */
-    virtual grammar::LeftRegularGrammar convert( void ) = 0;
-};
-
-} /* namespace conversions */
-
-#endif /* ABSTRACTRRGTOLRGCONVERTER_H_ */
diff --git a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h b/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h
index 23a94c318b7df7d95e884c6d327ce67b49e866a9..12ba44eff4a2f13603aeb45012d6423b0577eb7e 100644
--- a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h
+++ b/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h
@@ -8,7 +8,10 @@
 #ifndef RIGHTTOLEFTREGULARGRAMMAR_H_
 #define RIGHTTOLEFTREGULARGRAMMAR_H_
 
-#include "AbstractRRGtoLRGConverter.h"
+#include <grammar/Regular/LeftRegularGrammar.h>
+#include <grammar/Regular/RightRegularGrammar.h>
+
+#include "../../interface/IConversionLRG.h"
 
 namespace conversions
 {
@@ -16,7 +19,7 @@ namespace conversions
 /**
  * Converts right regular grammar to left regular grammar.
  */
-class RightToLeftRegularGrammar: public AbstractRRGtoLRGConverter
+class RightToLeftRegularGrammar: public IConversionLRG
 {
 public:
     /**