diff --git a/acast2/src/cast/AutomatonCastVisitor.cpp b/acast2/src/cast/AutomatonCastVisitor.cpp
index f86ba00e60ac93af8e4154c217621316eb07cfb2..37b3bdc700bb6aadbef97412e65a5c9d54287b50 100644
--- a/acast2/src/cast/AutomatonCastVisitor.cpp
+++ b/acast2/src/cast/AutomatonCastVisitor.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "AutomatonCastVisitor.h"
+#include "automaton/AutomatonClasses.h"
 
 #include "../CastVisitorBase.hpp"
 
diff --git a/acast2/src/cast/TreeToStringCastVisitor.cpp b/acast2/src/cast/TreeToStringCastVisitor.cpp
index 1fdb6033b4e09952022c517bacae4d0ecfd10c13..e3a1c1c2bd06c7c3667f918850f3e900ebffdc5e 100644
--- a/acast2/src/cast/TreeToStringCastVisitor.cpp
+++ b/acast2/src/cast/TreeToStringCastVisitor.cpp
@@ -6,6 +6,8 @@
  */
 
 #include "TreeToStringCastVisitor.h"
+#include "string/StringClasses.h"
+
 #include "../CastVisitorBase.hpp"
 
 typedef cast_base_helper< tree::VisitableTreeBase::const_visitor_type, tree::TreeBase, alib::TreeTypes, string::String, alib::StringTypes > TreeToStringCastVisitorType;
diff --git a/alib2algo/test-src/string/compare/compareTest.cpp b/alib2algo/test-src/string/compare/compareTest.cpp
index 7d1e4af54361b8dbc1606c4ab19f7cc5156f8693..ce30104f1f9dcdd35fdbc22d6617999968e10830 100644
--- a/alib2algo/test-src/string/compare/compareTest.cpp
+++ b/alib2algo/test-src/string/compare/compareTest.cpp
@@ -6,6 +6,7 @@
 #include "string/simplify/NormalizeRotation.h"
 #include "string/LinearString.h"
 #include "string/CyclicString.h"
+#include "string/Epsilon.h"
 
 #define CPPUNIT_IMPLY(x, y) CPPUNIT_ASSERT(!(x) || (y))
 
diff --git a/alib2data/src/XmlApi.cpp b/alib2data/src/XmlApi.cpp
index effa2b099a1921120647d4de29db5fdf3a96cd3a..c83f8bd9bc468f458e89ca0d545e99a64df33b7d 100644
--- a/alib2data/src/XmlApi.cpp
+++ b/alib2data/src/XmlApi.cpp
@@ -7,59 +7,13 @@
 
 #include "XmlApi.hpp"
 
-#include "alphabet/LabeledSymbol.h"
-#include "alphabet/BlankSymbol.h"
-#include "alphabet/BottomOfTheStackSymbol.h"
-#include "alphabet/BarSymbol.h"
-#include "alphabet/VariablesBarSymbol.h"
-#include "alphabet/StartSymbol.h"
-#include "alphabet/EndSymbol.h"
-#include "alphabet/RankedSymbol.h"
-#include "alphabet/SymbolPairSymbol.h"
-#include "alphabet/SymbolSetSymbol.h"
-#include "alphabet/SubtreeWildcardSymbol.h"
-#include "alphabet/UniqueSymbol.h"
-
-#include "label/PrimitiveLabel.h"
-#include "label/HexavigesimalLabel.h"
-#include "label/ObjectLabel.h"
-#include "label/LabelSetLabel.h"
-#include "label/LabelPairLabel.h"
-#include "label/UniqueLabel.h"
-
-#include "primitive/Primitive.h"
-#include "primitive/Bool.h"
-#include "primitive/Integer.h"
-#include "primitive/String.h"
-#include "primitive/Character.h"
-
-#include "object/Void.h"
-
-#include "exception/AlibException.h"
-
-#include "string/CyclicString.h"
-#include "string/LinearString.h"
-#include "string/Epsilon.h"
-
-#include "automaton/FSM/EpsilonNFA.h"
-#include "automaton/FSM/NFA.h"
-#include "automaton/FSM/MultiInitialStateNFA.h"
-#include "automaton/FSM/DFA.h"
-#include "automaton/FSM/CompactNFA.h"
-#include "automaton/FSM/ExtendedNFA.h"
-#include "automaton/PDA/DPDA.h"
-#include "automaton/PDA/SinglePopDPDA.h"
-#include "automaton/PDA/InputDrivenDPDA.h"
-#include "automaton/PDA/InputDrivenNPDA.h"
-#include "automaton/PDA/VisiblyPushdownDPDA.h"
-#include "automaton/PDA/VisiblyPushdownNPDA.h"
-#include "automaton/PDA/RealTimeHeightDeterministicDPDA.h"
-#include "automaton/PDA/RealTimeHeightDeterministicNPDA.h"
-#include "automaton/PDA/NPDA.h"
-#include "automaton/PDA/SinglePopNPDA.h"
-#include "automaton/TM/OneTapeDTM.h"
-#include "automaton/TA/DFTA.h"
-#include "automaton/TA/NFTA.h"
+#include "alphabet/SymbolClasses.h"
+#include "label/LabelClasses.h"
+#include "primitive/PrimitiveClasses.h"
+#include "object/ObjectClasses.h"
+#include "exception/ExceptionClasses.h"
+#include "string/StringClasses.h"
+#include "automaton/AutomatonClasses.h"
 
 namespace alib {
 
diff --git a/alib2data/src/alphabet/SymbolClasses.h b/alib2data/src/alphabet/SymbolClasses.h
new file mode 100644
index 0000000000000000000000000000000000000000..8d33b65075c5ecfcd4ab26af0a0b8e33d6695a80
--- /dev/null
+++ b/alib2data/src/alphabet/SymbolClasses.h
@@ -0,0 +1,24 @@
+/*
+ * SymbolClasses.h
+ *
+ *  Created on: Jun 19, 2014
+ *      Author: Jan Travnicek
+ */
+
+#ifndef SYMBOL_CLASSES_H_
+#define SYMBOL_CLASSES_H_
+
+#include "BlankSymbol.h"
+#include "BottomOfTheStackSymbol.h"
+#include "EndSymbol.h"
+#include "StartSymbol.h"
+#include "LabeledSymbol.h"
+#include "RankedSymbol.h"
+#include "BarSymbol.h"
+#include "VariablesBarSymbol.h"
+#include "SubtreeWildcardSymbol.h"
+#include "SymbolPairSymbol.h"
+#include "SymbolSetSymbol.h"
+#include "UniqueSymbol.h"
+
+#endif /* SYMBOL_CLASSES_H_ */
diff --git a/alib2data/src/alphabet/SymbolFromXMLParser.cpp b/alib2data/src/alphabet/SymbolFromXMLParser.cpp
index 29941d4b006e0f4d316340ee4799f56a38f20419..bcbe9464f4e5d17c08bdf32c2c377a97342b0ccd 100644
--- a/alib2data/src/alphabet/SymbolFromXMLParser.cpp
+++ b/alib2data/src/alphabet/SymbolFromXMLParser.cpp
@@ -12,18 +12,7 @@
 #include "../XmlApi.hpp"
 
 #include "Symbol.h"
-#include "BlankSymbol.h"
-#include "BottomOfTheStackSymbol.h"
-#include "EndSymbol.h"
-#include "StartSymbol.h"
-#include "LabeledSymbol.h"
-#include "RankedSymbol.h"
-#include "BarSymbol.h"
-#include "VariablesBarSymbol.h"
-#include "SubtreeWildcardSymbol.h"
-#include "SymbolPairSymbol.h"
-#include "SymbolSetSymbol.h"
-#include "UniqueSymbol.h"
+#include "SymbolClasses.h"
 
 namespace alphabet {
 
diff --git a/alib2data/src/exception/ExceptionClasses.h b/alib2data/src/exception/ExceptionClasses.h
new file mode 100644
index 0000000000000000000000000000000000000000..67592b494be65d1b4d767bb612693bdd77e76fe3
--- /dev/null
+++ b/alib2data/src/exception/ExceptionClasses.h
@@ -0,0 +1,13 @@
+/*
+ * ExceptionClasses.h
+ *
+ *  Created on: Jun 19, 2014
+ *      Author: Jan Travnicek
+ */
+
+#ifndef EXCEPTION_CLASSES_H_
+#define EXCEPTION_CLASSES_H_
+
+#include "AlibException.h"
+
+#endif /* EXCEPTION_CLASSES_H_ */
diff --git a/alib2data/src/exception/ExceptionFromXMLParser.cpp b/alib2data/src/exception/ExceptionFromXMLParser.cpp
index 153f405ad8af1ee613223bfa948172aef94eab33..aacec3c945db464ae6bb05569c1638b140b0af69 100644
--- a/alib2data/src/exception/ExceptionFromXMLParser.cpp
+++ b/alib2data/src/exception/ExceptionFromXMLParser.cpp
@@ -10,7 +10,7 @@
 #include "../XmlApi.hpp"
 #include <string>
 
-#include "AlibException.h"
+#include "ExceptionClasses.h"
 
 namespace exception {
 
diff --git a/alib2data/src/exception/ExceptionToXMLComposer.cpp b/alib2data/src/exception/ExceptionToXMLComposer.cpp
index 14a1f47ad0b2f28a0cb17c11e2162624d14f7464..c0eb43aa2c182b66be477d71856169dbdaa44488 100644
--- a/alib2data/src/exception/ExceptionToXMLComposer.cpp
+++ b/alib2data/src/exception/ExceptionToXMLComposer.cpp
@@ -9,7 +9,7 @@
 
 #include "../XmlApi.hpp"
 
-#include "AlibException.h"
+#include "ExceptionClasses.h"
 
 namespace exception {
 
diff --git a/alib2data/src/label/LabelClasses.h b/alib2data/src/label/LabelClasses.h
new file mode 100644
index 0000000000000000000000000000000000000000..12c1254ca4b214efb18d11c606973c8492314cad
--- /dev/null
+++ b/alib2data/src/label/LabelClasses.h
@@ -0,0 +1,18 @@
+/*
+ * LabelClasses.h
+ *
+ *  Created on: Jun 19, 2014
+ *      Author: Jan Travnicek
+ */
+
+#ifndef LABEL_CLASSES_H_
+#define LABEL_CLASSES_H_
+
+#include "PrimitiveLabel.h"
+#include "HexavigesimalLabel.h"
+#include "ObjectLabel.h"
+#include "LabelSetLabel.h"
+#include "LabelPairLabel.h"
+#include "UniqueLabel.h"
+
+#endif /* LABEL_CLASSES_H_ */
diff --git a/alib2data/src/label/LabelFromXMLParser.cpp b/alib2data/src/label/LabelFromXMLParser.cpp
index e59711884428118d79f4e15ed29bd88135f08303..7792af2a79a749ac03cf8b01d1de124905b37691 100644
--- a/alib2data/src/label/LabelFromXMLParser.cpp
+++ b/alib2data/src/label/LabelFromXMLParser.cpp
@@ -10,12 +10,7 @@
 #include "../XmlApi.hpp"
 
 #include "Label.h"
-#include "PrimitiveLabel.h"
-#include "HexavigesimalLabel.h"
-#include "ObjectLabel.h"
-#include "LabelSetLabel.h"
-#include "LabelPairLabel.h"
-#include "UniqueLabel.h"
+#include "LabelClasses.h"
 
 namespace label {
 
diff --git a/alib2data/src/label/LabelToXMLComposer.cpp b/alib2data/src/label/LabelToXMLComposer.cpp
index 66e4f00c74ebc5bf509a2c5fb0bb63223ac0ba63..c316f6033c1a6b0792f5d7cacdd1e489b32b6c40 100644
--- a/alib2data/src/label/LabelToXMLComposer.cpp
+++ b/alib2data/src/label/LabelToXMLComposer.cpp
@@ -9,12 +9,7 @@
 
 #include "../XmlApi.hpp"
 
-#include "PrimitiveLabel.h"
-#include "HexavigesimalLabel.h"
-#include "ObjectLabel.h"
-#include "LabelSetLabel.h"
-#include "LabelPairLabel.h"
-#include "UniqueLabel.h"
+#include "LabelClasses.h"
 
 namespace label {
 
diff --git a/alib2data/src/object/ObjectClasses.h b/alib2data/src/object/ObjectClasses.h
new file mode 100644
index 0000000000000000000000000000000000000000..a1e45f0caad31f0325fb957808dcce239115395a
--- /dev/null
+++ b/alib2data/src/object/ObjectClasses.h
@@ -0,0 +1,13 @@
+/*
+ * ObjectClasses.h
+ *
+ *  Created on: Jun 19, 2014
+ *      Author: Jan Travnicek
+ */
+
+#ifndef OBJECT_CLASSES_H_
+#define OBJECT_CLASSES_H_
+
+#include "Void.h"
+
+#endif /* OBJECT_CLASSES_H_ */
diff --git a/alib2data/src/object/ObjectFromXMLParser.cpp b/alib2data/src/object/ObjectFromXMLParser.cpp
index 487f5916a0061cf648d5b2e28fc36d3eb5e776ac..38b2cef5584b453f1b3a49ccf30b98d6ddb9a7f2 100644
--- a/alib2data/src/object/ObjectFromXMLParser.cpp
+++ b/alib2data/src/object/ObjectFromXMLParser.cpp
@@ -10,7 +10,7 @@
 #include "../XmlApi.hpp"
 
 #include "Object.h"
-#include "Void.h"
+#include "ObjectClasses.h"
 
 namespace alib {
 
diff --git a/alib2data/src/object/ObjectToXMLComposer.cpp b/alib2data/src/object/ObjectToXMLComposer.cpp
index da4f589c69cecf28535a795e66c91a218cf782f8..688e792e1971eb1d24ce1549aa7e4a3d1c3ea1cb 100644
--- a/alib2data/src/object/ObjectToXMLComposer.cpp
+++ b/alib2data/src/object/ObjectToXMLComposer.cpp
@@ -10,7 +10,7 @@
 #include "../XmlApi.hpp"
 
 #include "Object.h"
-#include "Void.h"
+#include "ObjectClasses.h"
 
 namespace alib {
 
diff --git a/alib2data/src/primitive/PrimitiveClasses.h b/alib2data/src/primitive/PrimitiveClasses.h
new file mode 100644
index 0000000000000000000000000000000000000000..bb5b30940b8aa9b3fe819a30e373f1146a624e5b
--- /dev/null
+++ b/alib2data/src/primitive/PrimitiveClasses.h
@@ -0,0 +1,17 @@
+/*
+ * PrimitiveClasses.h
+ *
+ *  Created on: Jun 19, 2014
+ *      Author: Jan Travnicek
+ */
+
+#ifndef PRIMITIVE_CLASSES_H_
+#define PRIMITIVE_CLASSES_H_
+
+#include "String.h"
+#include "Integer.h"
+#include "Character.h"
+#include "Unsigned.h"
+#include "Bool.h"
+
+#endif /* PRIMITIVE_CLASSES_H_ */
diff --git a/alib2data/src/primitive/PrimitiveFromXMLParser.cpp b/alib2data/src/primitive/PrimitiveFromXMLParser.cpp
index 68dff68c69c150e80175ce40709f9b021c5f813b..1cb253ad1da5eb6b4ff9bfc03f024d4ea05b7459 100644
--- a/alib2data/src/primitive/PrimitiveFromXMLParser.cpp
+++ b/alib2data/src/primitive/PrimitiveFromXMLParser.cpp
@@ -10,11 +10,7 @@
 #include "../XmlApi.hpp"
 
 #include "Primitive.h"
-#include "String.h"
-#include "Integer.h"
-#include "Character.h"
-#include "Unsigned.h"
-#include "Bool.h"
+#include "PrimitiveClasses.h"
 
 namespace primitive {
 
diff --git a/alib2data/src/primitive/PrimitiveToXMLComposer.cpp b/alib2data/src/primitive/PrimitiveToXMLComposer.cpp
index 44532e60c30c2bb4f1949fc5bd7e360b619168ce..4be1fdfe7295e6a5845bf2d023bb2fe370a21892 100644
--- a/alib2data/src/primitive/PrimitiveToXMLComposer.cpp
+++ b/alib2data/src/primitive/PrimitiveToXMLComposer.cpp
@@ -10,10 +10,7 @@
 #include "../XmlApi.hpp"
 
 #include "Primitive.h"
-#include "Bool.h"
-#include "Integer.h"
-#include "String.h"
-#include "Character.h"
+#include "PrimitiveClasses.h"
 
 namespace primitive {
 
diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h
index fbf9ff77a347f81c952e78ee0e7ccbaee8170343..7aa953bd1014c8426e9add7f1f1e419abbbac652 100644
--- a/alib2data/src/string/CyclicString.h
+++ b/alib2data/src/string/CyclicString.h
@@ -15,6 +15,8 @@
 #include "../alphabet/Symbol.h"
 #include "common/StringAlphabet.h"
 
+#include "Epsilon.h"
+
 namespace string {
 
 /**
diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h
index 2b3c839d61aa9cbc2d2b55ff71a08220b4711a1a..538e4e7ad5bbe53f3c6f6ad080b1a2dc2c9679b3 100644
--- a/alib2data/src/string/LinearString.h
+++ b/alib2data/src/string/LinearString.h
@@ -17,6 +17,8 @@
 #include "common/StringAlphabet.h"
 #include "../tree/ranked/PrefixRankedTree.h"
 
+#include "Epsilon.h"
+
 namespace string {
 
 /**
diff --git a/alib2data/src/string/StringClasses.h b/alib2data/src/string/StringClasses.h
new file mode 100644
index 0000000000000000000000000000000000000000..364fd52ac5de3a81fbd11c0147b51c62b1da6044
--- /dev/null
+++ b/alib2data/src/string/StringClasses.h
@@ -0,0 +1,15 @@
+/*
+ * StringClasses.h
+ *
+ *  Created on: Jun 19, 2014
+ *      Author: Jan Travnicek
+ */
+
+#ifndef STRING_CLASSES_H_
+#define STRING_CLASSES_H_
+
+#include "CyclicString.h"
+#include "LinearString.h"
+#include "Epsilon.h"
+
+#endif /* STRING_CLASSES_H_ */
diff --git a/alib2data/src/string/StringFromXMLParser.cpp b/alib2data/src/string/StringFromXMLParser.cpp
index 2a718149c12343b518ec5f62cc004632324f4e71..ac509cd18ffd791bba20b955e1dbf57d82c55690 100644
--- a/alib2data/src/string/StringFromXMLParser.cpp
+++ b/alib2data/src/string/StringFromXMLParser.cpp
@@ -10,9 +10,7 @@
 #include "../XmlApi.hpp"
 
 #include "String.h"
-#include "Epsilon.h"
-#include "LinearString.h"
-#include "CyclicString.h"
+#include "StringClasses.h"
 
 namespace string {
 
diff --git a/alib2data/src/string/StringToXMLComposer.cpp b/alib2data/src/string/StringToXMLComposer.cpp
index e692540bcc97b0956bb466308e2120e8221e20c3..23dd1f74e45f8a90e062a9a62de9e12f4b707e76 100644
--- a/alib2data/src/string/StringToXMLComposer.cpp
+++ b/alib2data/src/string/StringToXMLComposer.cpp
@@ -8,9 +8,7 @@
 #include "StringToXMLComposer.h"
 #include "../XmlApi.hpp"
 
-#include "CyclicString.h"
-#include "LinearString.h"
-#include "Epsilon.h"
+#include "StringClasses.h"
 
 namespace string {
 
diff --git a/alib2data/test-src/automaton/AutomatonTest.cpp b/alib2data/test-src/automaton/AutomatonTest.cpp
index 4b8383a0abf3e25e15bbd804805cd5621ac4f69e..261811e32009cff1d8f4edfa6cfd60c61312154c 100644
--- a/alib2data/test-src/automaton/AutomatonTest.cpp
+++ b/alib2data/test-src/automaton/AutomatonTest.cpp
@@ -7,6 +7,8 @@
 #include "automaton/FSM/ExtendedNFA.h"
 #include "automaton/PDA/SinglePopDPDA.h"
 #include "automaton/PDA/DPDA.h"
+#include "automaton/PDA/NPDA.h"
+#include "automaton/PDA/RealTimeHeightDeterministicNPDA.h"
 #include "automaton/TA/NFTA.h"
 
 #include "automaton/AutomatonException.h"