diff --git a/libmwereader/CMakeLists.txt b/libmwereader/CMakeLists.txt
index f1cd0acecf828c6365ccecd5d986c7324ba3cabf..706c765487b3c57a6502170803affb55e7d52548 100644
--- a/libmwereader/CMakeLists.txt
+++ b/libmwereader/CMakeLists.txt
@@ -25,7 +25,7 @@ include_directories(${LibXML++_INCLUDE_DIRS})
 link_directories(${LibXML++_LIBRARY_DIRS})
 set(LIBS ${LIBS} ${LibXML++_LIBRARIES})
 
-add_library(corpus2_mwereader SHARED mwereader.cpp )
+add_library(corpus2_mwereader SHARED mwereader.cpp mwe.cpp )
 
 target_link_libraries(corpus2_mwereader corpus2)
 
diff --git a/libmwereader/mwe.cpp b/libmwereader/mwe.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/libmwereader/mwe.h b/libmwereader/mwe.h
new file mode 100644
index 0000000000000000000000000000000000000000..2527d4ba5de5218247590e14db3142066a757dfc
--- /dev/null
+++ b/libmwereader/mwe.h
@@ -0,0 +1,29 @@
+#ifndef LIBMWEREADER_MWE_H
+#define LIBMWEREADER_MWE_H
+
+#include <libcorpus2/io/reader.h>
+
+namespace Corpus2 {
+
+class LexicalUnit
+{
+
+};
+
+class FixedLU : public LexicalUnit
+{
+
+};
+
+class FlexLU : public LexicalUnit
+{
+
+};
+
+class MWEIndex // lub base -> vector<LexicalUnit>
+{
+};
+
+}// ns Corpus2
+
+#endif //LIBMWEREADER_MWE_H
diff --git a/libmwereader/mweparser.cpp b/libmwereader/mweparser.cpp
index 60ccdb0424b3f3d7fb240fd2bbcbfa9ce1eb4c3d..6cedc52b394d1bfd2d4bbc360eb2eda8fff6246d 100644
--- a/libmwereader/mweparser.cpp
+++ b/libmwereader/mweparser.cpp
@@ -103,16 +103,16 @@ namespace Corpus2 {
 		}
 	}
 
-	void MWEParser::print_current_mwe(bool with_condition)
+	void MWEParser::print_current_mwe(bool with_condition, std::ostream &out)
 	{
-		std::cout << "Forma podstawowa: " << mwe_base_ << "\nZmienne: ";
+		out << "Forma podstawowa: " << mwe_base_ << "\nZmienne: ";
 
 		foreach(str_map::value_type &i, variables_)
-			std::cout << i.first << ": " << i.second << ", ";
-		std::cout << "\nWarunek głowy: " << head_cond_ << "\n";
+			out << i.first << ": " << i.second << ", ";
+		out << "\nWarunek głowy: " << head_cond_ << "\n";
 		if(with_condition){
-			std::cout << "Grupa jednostek: " << group_name_ << std::endl;
-			std::cout << "Operator: " << wccl_operator_ << std::endl;
+			out << "Grupa jednostek: " << group_name_ << std::endl;
+			out << "Operator: " << wccl_operator_ << std::endl;
 
 		}
 
@@ -124,6 +124,8 @@ namespace Corpus2 {
 		boost::algorithm::trim(str);
 		grab_characters_ = false;
 		return str;
+
+		//std::pair<wcclptr, wcclptr, map<string,string>, string, type>
 	}
 
 } // ns Corpus2
diff --git a/libmwereader/mweparser.h b/libmwereader/mweparser.h
index 4ccdaf36f8e26a6651f115c15e3d18d0e4ec8710..81313e526ecf69be853f4618ac585169c41a8311 100644
--- a/libmwereader/mweparser.h
+++ b/libmwereader/mweparser.h
@@ -6,6 +6,10 @@
 
 namespace Corpus2 {
 
+class MWEBuilder
+{
+
+};
 
 class MWEParser : public BasicSaxParser
 {
@@ -20,7 +24,8 @@ protected:
 	void on_end_element(const Glib::ustring &name);
 	std::string finish_get_text();
 
-	void print_current_mwe(bool with_condition = false);
+	void print_current_mwe(bool with_condition = false,
+						   std::ostream& out = std::cout);
 
 
 	/// retrives tagset= attribute