diff --git a/aconversions/src/conversions/re2fa/Brzozowski.cpp b/aconversions/src/conversions/re2fa/Brzozowski.cpp
index 479ffb37f1e4ebc07237c37254607769d08d679f..ba42a73b5d9d1f299b447230811097ebb07d170e 100644
--- a/aconversions/src/conversions/re2fa/Brzozowski.cpp
+++ b/aconversions/src/conversions/re2fa/Brzozowski.cpp
@@ -7,7 +7,21 @@
 
 #include "Brzozowski.h"
 
+using namespace automaton;
+using namespace regexp;
+
 namespace conversions
 {
 
+Brzozowski::Brzozowski( const RegExp & re ) : AbstractREtoFAConverter( re )
+{
+
+}
+
+const FSM Brzozowski::convert( void )
+{
+    return m_fsm;
+}
+
+
 } /* namespace conversions */
diff --git a/aconversions/src/conversions/re2fa/Brzozowski.h b/aconversions/src/conversions/re2fa/Brzozowski.h
index cae0c27c9a5ff88d2798256513c16fdc190bcf57..3da6f85cd97d40cbab64ed26f291a7cb3b1199cb 100644
--- a/aconversions/src/conversions/re2fa/Brzozowski.h
+++ b/aconversions/src/conversions/re2fa/Brzozowski.h
@@ -18,6 +18,9 @@ namespace conversions
  */
 class Brzozowski : public AbstractREtoFAConverter
 {
+public:
+    Brzozowski( const regexp::RegExp & re );
+    const automaton::FSM convert( void );
 };
 
 } /* namespace conversions */
diff --git a/aconversions/src/conversions/re2fa/Glushkov.cpp b/aconversions/src/conversions/re2fa/Glushkov.cpp
index be1c514c89b6eaad6f13e348b7810f4e370a726d..c784a226a57eb891b3013b9d831bd53786662bb7 100644
--- a/aconversions/src/conversions/re2fa/Glushkov.cpp
+++ b/aconversions/src/conversions/re2fa/Glushkov.cpp
@@ -7,7 +7,20 @@
 
 #include "Glushkov.h"
 
+using namespace automaton;
+using namespace regexp;
+
 namespace conversions
 {
 
+Glushkov::Glushkov( const RegExp & re ) : AbstractREtoFAConverter( re )
+{
+
+}
+
+const FSM Glushkov::convert( void )
+{
+    return m_fsm;
+}
+
 } /* namespace conversions */
diff --git a/aconversions/src/conversions/re2fa/Glushkov.h b/aconversions/src/conversions/re2fa/Glushkov.h
index 6032ce3f918f0136ef4c49cfaced06d1417207cd..5da8240f332012dbd971cd9a3d3ffefc9d537414 100644
--- a/aconversions/src/conversions/re2fa/Glushkov.h
+++ b/aconversions/src/conversions/re2fa/Glushkov.h
@@ -8,6 +8,9 @@
 #ifndef GLUSHKOV_H_
 #define GLUSHKOV_H_
 
+#include <regexp/RegExp.h>
+#include <regexp/RegExpSymbol.h>
+
 #include "AbstractREtoFAConverter.h"
 
 namespace conversions
@@ -18,9 +21,20 @@ namespace conversions
  */
 class Glushkov : public AbstractREtoFAConverter
 {
+public:
+    Glushkov( const regexp::RegExp & re );
+    const automaton::FSM convert( void );
+
+private:
+    struct Struct
+    {
+        regexp::RegExpSymbol & m_symbol;
+        int m_i;
+
+        std::string constructStateName();
+    };
 };
 
 } /* namespace conversions */
 
-
 #endif /* GLUSHKOV_H_ */
diff --git a/aconversions/src/conversions/re2fa/Makefile b/aconversions/src/conversions/re2fa/Makefile
index 7f78a561d2e785975d84b529689f5ef53a2edada..fd14edb345cec9202bf84e0ac8dfab42c9e90f6a 100644
--- a/aconversions/src/conversions/re2fa/Makefile
+++ b/aconversions/src/conversions/re2fa/Makefile
@@ -1,12 +1,28 @@
-EXECUTABLE=are2fa
+all: are2fa.glushkov are2fa.brzozowski are2fa.thompson
+#	cp are2fa.glushkov $(BIN_DIR)
+#	cp are2fa.brzozowski $(BIN_DIR)
+	cp are2fa.thompson $(BIN_DIR)
 
-all: $(EXECUTABLE).o AbstractREtoFAConverter.o Brzozowski.o Glushkov.o Thompson.o AutomatonUtils.o ConversionException.o
-	$(LD) $(LDFLAGS) $^ -o $(EXECUTABLE)
-	cp $(EXECUTABLE) $(BIN_DIR)
+#are2fa.glushkov: are2fa.glushkov.o Glushkov.o AbstractREtoFAConverter.o
+#	$(LD) $(LDFLAGS) $^ -o $@
 
-$(EXECUTABLE).o: are2fa.cpp Brzozowski.h AbstractREtoFAConverter.h Glushkov.h Thompson.h
+#are2fa.brzozowski: are2fa.brzozowski.o Brzozowski.o AbstractREtoFAConverter.o
+#	$(LD) $(LDFLAGS) $^ -o $@
+
+are2fa.thompson: are2fa.thompson.o Thompson.o AbstractREtoFAConverter.o AutomatonUtils.o ConversionException.o
+	$(LD) $(LDFLAGS) $^ -o $@
+
+
+are2fa.brzozowski.o: are2fa.brzozowski.cpp Brzozowski.h AbstractREtoFAConverter.h
+	$(CXX) $(CXXFLAGS) $< -o $@
+
+are2fa.glushkov.o: are2fa.glushkov.cpp Glushkov.h AbstractREtoFAConverter.h
+	$(CXX) $(CXXFLAGS) $< -o $@
+
+are2fa.thompson.o: are2fa.thompson.cpp Thompson.h AbstractREtoFAConverter.h
 	$(CXX) $(CXXFLAGS) $< -o $@
 
+
 AbstractREtoFAConverter.o: AbstractREtoFAConverter.cpp AbstractREtoFAConverter.h
 	$(CXX) $(CXXFLAGS) $< -o $@
 
diff --git a/aconversions/src/conversions/re2fa/are2fa.brzozowski.cpp b/aconversions/src/conversions/re2fa/are2fa.brzozowski.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e23912e8993bd74263e2fc89c3d2f97e036d4677
--- /dev/null
+++ b/aconversions/src/conversions/re2fa/are2fa.brzozowski.cpp
@@ -0,0 +1,37 @@
+#include <iostream>
+
+#include <AlibException.h>
+#include <automaton/AutomatonPrinter.h>
+#include <regexp/RegExp.h>
+#include <regexp/RegExpParser.h>
+#include <sax/SaxInterface.h>
+
+#include "Brzozowski.h"
+
+
+using namespace std;
+using namespace automaton;
+using namespace regexp;
+using namespace alib;
+using namespace conversions;
+
+int main(int argc, char** argv)
+{
+    try
+    {
+        list<Token> tokens;
+        string input(istreambuf_iterator<char>(cin), (istreambuf_iterator<char>()));
+        SaxInterface::parseMemory(input, tokens);
+        RegExp re = RegExpParser::parse(tokens);
+
+        Brzozowski conv( re );
+        conv.convert( ).toXML( cout );
+    }
+    catch( AlibException & e )
+    {
+        cout << e.what() << endl;
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/aconversions/src/conversions/re2fa/are2fa.glushkov.cpp b/aconversions/src/conversions/re2fa/are2fa.glushkov.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..9fb57c5d651b1219245e8851b29e1a5f06b21b86
--- /dev/null
+++ b/aconversions/src/conversions/re2fa/are2fa.glushkov.cpp
@@ -0,0 +1,37 @@
+#include <iostream>
+
+#include <AlibException.h>
+#include <automaton/AutomatonPrinter.h>
+#include <regexp/RegExp.h>
+#include <regexp/RegExpParser.h>
+#include <sax/SaxInterface.h>
+
+#include "Glushkov.h"
+
+
+using namespace std;
+using namespace automaton;
+using namespace regexp;
+using namespace alib;
+using namespace conversions;
+
+int main(int argc, char** argv)
+{
+    try
+    {
+        list<Token> tokens;
+        string input(istreambuf_iterator<char>(cin), (istreambuf_iterator<char>()));
+        SaxInterface::parseMemory(input, tokens);
+        RegExp re = RegExpParser::parse(tokens);
+
+        Glushkov conv( re );
+        conv.convert( ).toXML( cout );
+    }
+    catch( AlibException & e )
+    {
+        cout << e.what() << endl;
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/aconversions/src/conversions/re2fa/are2fa.cpp b/aconversions/src/conversions/re2fa/are2fa.thompson.cpp
similarity index 74%
rename from aconversions/src/conversions/re2fa/are2fa.cpp
rename to aconversions/src/conversions/re2fa/are2fa.thompson.cpp
index 167925f02fa0c79aa323637b6eed9153caca48ae..0535c949d11dc5d80743ffb1d1aa994b60f8833a 100644
--- a/aconversions/src/conversions/re2fa/are2fa.cpp
+++ b/aconversions/src/conversions/re2fa/are2fa.thompson.cpp
@@ -1,11 +1,3 @@
-//============================================================================
-// Name        : are2fa.cpp
-// Author      : Tomas Pecka
-// Version     :
-// Copyright   :
-// Description :
-//============================================================================
-
 #include <iostream>
 
 #include <AlibException.h>