diff --git a/aconversions/src/conversions/fa2rg/AbstractFAtoRGConverter.h b/aconversions/src/conversions/fa2rg/AbstractFAtoRGConverter.h
index 66e6e95e6d6be798e4370e58a88155ee62e272d1..3b9cb83e9d4a38503e8a0f1ead327075c33ff481 100644
--- a/aconversions/src/conversions/fa2rg/AbstractFAtoRGConverter.h
+++ b/aconversions/src/conversions/fa2rg/AbstractFAtoRGConverter.h
@@ -2,7 +2,7 @@
 #define __ABSTRACTFATORGCONVERTER_H__
 
 #include <automaton/FSM/FSM.h>
-#include <grammar/RegularGrammar.h>
+#include <grammar/Regular/RegularGrammar.h>
 #include <memory>
 
 #include "../../utils/ConversionException.h"
diff --git a/aconversions/src/conversions/fa2rg/FAtoLRGConverter.h b/aconversions/src/conversions/fa2rg/FAtoLRGConverter.h
index 2cbcc479a835f995b7f7bad4425d11b81da6cfa3..45635b13feec948070318fdab24d5d73d48c32d2 100644
--- a/aconversions/src/conversions/fa2rg/FAtoLRGConverter.h
+++ b/aconversions/src/conversions/fa2rg/FAtoLRGConverter.h
@@ -2,7 +2,7 @@
 #define __FATOLRGCONVERTER_H__
 
 #include "AbstractFAtoRGConverter.h"
-#include <grammar/LeftRegularGrammar.h>
+#include <grammar/Regular/LeftRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
 
 #include "../../utils/GrammarUtils.h"
diff --git a/aconversions/src/conversions/fa2rg/FAtoRRGConverter.h b/aconversions/src/conversions/fa2rg/FAtoRRGConverter.h
index 519166d13483f1ec579a6841fd6ce5a4b8650b00..7033b68a2b8d913121e7b486d457df4f748a685b 100644
--- a/aconversions/src/conversions/fa2rg/FAtoRRGConverter.h
+++ b/aconversions/src/conversions/fa2rg/FAtoRRGConverter.h
@@ -2,7 +2,7 @@
 #define __FATORRGCONVERTER_H__
 
 #include "AbstractFAtoRGConverter.h"
-#include <grammar/RightRegularGrammar.h>
+#include <grammar/Regular/RightRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
 
 #include "../../utils/GrammarUtils.h"
diff --git a/aconversions/src/conversions/fa2rg/afa2lrg.cpp b/aconversions/src/conversions/fa2rg/afa2lrg.cpp
index 59cc82fcc9fbb545a4ede64cf59f92267ede8ee6..223a833958e4f40bc947fabc45dd75a2acc2fe7e 100644
--- a/aconversions/src/conversions/fa2rg/afa2lrg.cpp
+++ b/aconversions/src/conversions/fa2rg/afa2lrg.cpp
@@ -3,7 +3,7 @@
 #include <AlibException.h>
 #include <AutomatonFactory.h>
 #include <grammar/GrammarPrinter.h>
-#include <grammar/RightRegularGrammar.h>
+#include <grammar/Regular/RightRegularGrammar.h>
 
 #include "FAtoLRGConverter.h"
 
@@ -22,7 +22,7 @@ int main(int argc, char** argv)
         FSM fsm = AutomatonFactory::buildFSM( AutomatonFactory::fromString( input ) );
 
         FAtoLRGConverter conv( fsm );
-        GrammarPrinter::toXML( conv.convert(), cout );
+        conv.convert().toXML( cout );
     }
     catch( AlibException & e )
     {
diff --git a/aconversions/src/conversions/fa2rg/afa2rrg.cpp b/aconversions/src/conversions/fa2rg/afa2rrg.cpp
index 0dbf6c105865f5e5c5e75a1d6faa61f7bc95e5ab..0b4a21006410adfe6a15781246bea4a4cdb05650 100644
--- a/aconversions/src/conversions/fa2rg/afa2rrg.cpp
+++ b/aconversions/src/conversions/fa2rg/afa2rrg.cpp
@@ -4,7 +4,7 @@
 #include <AlibException.h>
 #include <AutomatonFactory.h>
 #include <grammar/GrammarPrinter.h>
-#include <grammar/RegularGrammar.h>
+#include <grammar/Regular/RegularGrammar.h>
 
 #include "FAtoRRGConverter.h"
 
@@ -23,7 +23,7 @@ int main(int argc, char** argv)
         FSM fsm = AutomatonFactory::buildFSM( AutomatonFactory::fromString( input ) );
 
         FAtoRRGConverter conv( fsm );
-        GrammarPrinter::toXML( conv.convert(), cout );
+        conv.convert().toXML( cout );
     }
     catch( AlibException & e )
     {
diff --git a/aconversions/src/conversions/re2fa/Glushkov.h b/aconversions/src/conversions/re2fa/Glushkov.h
index 44dfee8f4d037f41c0236550ed13a2eecf74c1a0..6032ce3f918f0136ef4c49cfaced06d1417207cd 100644
--- a/aconversions/src/conversions/re2fa/Glushkov.h
+++ b/aconversions/src/conversions/re2fa/Glushkov.h
@@ -18,7 +18,9 @@ namespace conversions
  */
 class Glushkov : public AbstractREtoFAConverter
 {
+};
 
 } /* namespace conversions */
 
+
 #endif /* GLUSHKOV_H_ */
diff --git a/aconversions/src/conversions/re2fa/are2fa.cpp b/aconversions/src/conversions/re2fa/are2fa.cpp
index 715b5889041b9a72710a02d659684d7960199b9d..167925f02fa0c79aa323637b6eed9153caca48ae 100644
--- a/aconversions/src/conversions/re2fa/are2fa.cpp
+++ b/aconversions/src/conversions/re2fa/are2fa.cpp
@@ -14,8 +14,6 @@
 #include <regexp/RegExpParser.h>
 #include <sax/SaxInterface.h>
 
-#include "Brzozowski.h"
-#include "Glushkov.h"
 #include "Thompson.h"
 
 
@@ -35,9 +33,7 @@ int main(int argc, char** argv)
         RegExp re = RegExpParser::parse(tokens);
 
         Thompson conv( re );
-        FSM fsm = conv.convert( );
-
-        AutomatonPrinter::toXML( fsm, cout );
+        conv.convert( ).toXML( cout );
     }
     catch( AlibException & e )
     {
diff --git a/aconversions/src/conversions/rg2fa/AbstractRGtoFAConverter.h b/aconversions/src/conversions/rg2fa/AbstractRGtoFAConverter.h
index 67575b57afdf08583fecc725e3fa78381715eb68..1c4f8d77476adcb73aff01041106feba45a3d567 100644
--- a/aconversions/src/conversions/rg2fa/AbstractRGtoFAConverter.h
+++ b/aconversions/src/conversions/rg2fa/AbstractRGtoFAConverter.h
@@ -2,7 +2,7 @@
 #define __ABSTRACTRGTOFACONVERTER_H__
 
 #include <automaton/FSM/FSM.h>
-#include <grammar/RegularGrammar.h>
+#include <grammar/Regular/RegularGrammar.h>
 
 namespace conversions
 {
diff --git a/aconversions/src/conversions/rg2fa/LRGtoFAConverter.h b/aconversions/src/conversions/rg2fa/LRGtoFAConverter.h
index 856a0cbe80018674592b428ffc38a93ab5e8587a..5cc661c13d28e7789e2a57ea9d55fab17cdacf11 100644
--- a/aconversions/src/conversions/rg2fa/LRGtoFAConverter.h
+++ b/aconversions/src/conversions/rg2fa/LRGtoFAConverter.h
@@ -2,7 +2,7 @@
 #define __LRGTOFACONVERTER_H__
 
 #include <automaton/FSM/FSM.h>
-#include <grammar/LeftRegularGrammar.h>
+#include <grammar/Regular/LeftRegularGrammar.h>
 
 #include "../../utils/AutomatonUtils.h"
 #include "../../utils/GrammarUtils.h"
diff --git a/aconversions/src/conversions/rg2fa/Makefile b/aconversions/src/conversions/rg2fa/Makefile
index 02b4e2f63eb7ed197d81c70ee5c7249880953b82..2bf7c4c8522576a6d5d6ae87735404c72c6facaf 100644
--- a/aconversions/src/conversions/rg2fa/Makefile
+++ b/aconversions/src/conversions/rg2fa/Makefile
@@ -1,4 +1,4 @@
-EXECUTABLE=are2fa
+EXECUTABLE=arg2fa
 
 all: $(EXECUTABLE).o AbstractRGtoFAConverter.o LRGtoFAConverter.o RRGtoFAConverter.o AutomatonUtils.o GrammarUtils.o ConversionException.o
 	$(LD) $(LDFLAGS) $^ -o $(EXECUTABLE)
diff --git a/aconversions/src/conversions/rg2fa/RRGtoFAConverter.h b/aconversions/src/conversions/rg2fa/RRGtoFAConverter.h
index 1d6af194f5556d18b31c9d0d1661cf9d7ddb3604..981ed00bcb6a5ab1736cc5ff3f4e2b94b8458f15 100644
--- a/aconversions/src/conversions/rg2fa/RRGtoFAConverter.h
+++ b/aconversions/src/conversions/rg2fa/RRGtoFAConverter.h
@@ -1,7 +1,7 @@
 #ifndef __RRGTOFACONVERTER_H__
 #define __RRGTOFACONVERTER_H__
 
-#include <grammar/RightRegularGrammar.h>
+#include <grammar/Regular/RightRegularGrammar.h>
 #include <automaton/FSM/FSM.h>
 
 #include "../../utils/AutomatonUtils.h"
diff --git a/aconversions/src/conversions/rg2fa/arg2fa.cpp b/aconversions/src/conversions/rg2fa/arg2fa.cpp
index 83c81929b2278e9935fdd159c5372252dfc6c3af..f5bf31a320ef72089e8c97f7ce9c47c0b99082f2 100644
--- a/aconversions/src/conversions/rg2fa/arg2fa.cpp
+++ b/aconversions/src/conversions/rg2fa/arg2fa.cpp
@@ -42,7 +42,7 @@ int main(int argc, char** argv)
         //}
 
         FSM fsm = conv.convert( );
-        AutomatonPrinter::toXML( fsm, cout );
+        fsm.toXML( cout );
     }
     catch( AlibException & e )
     {
diff --git a/aconversions/src/utils/GrammarUtils.h b/aconversions/src/utils/GrammarUtils.h
index 1e5c740b0246b9ecd4a5a5a1a35959e28a27b345..039e15c99e055d2cac61b593e661229e737fe750 100644
--- a/aconversions/src/utils/GrammarUtils.h
+++ b/aconversions/src/utils/GrammarUtils.h
@@ -11,7 +11,7 @@
 #include "utils.h"
 
 #include <grammar/GrammarException.h>
-#include <grammar/RegularGrammar.h>
+#include <grammar/Regular/RegularGrammar.h>
 #include <grammar/Rule.h>
 #include <alphabet/Symbol.h>