diff --git a/alib2data/src/common/DefaultEdgeType.h b/alib2data/src/common/DefaultEdgeType.h
new file mode 100644
index 0000000000000000000000000000000000000000..b3b379970d00a26065cbcd274448f6737144e02e
--- /dev/null
+++ b/alib2data/src/common/DefaultEdgeType.h
@@ -0,0 +1,15 @@
+/*
+ * DefaultEdgeType.h
+ *
+ *  Created on: Jan 12, 2017
+ *      Author: Jan Travnicek
+ */
+
+#ifndef DEFAULT_EDGE_TYPE_H_
+#define DEFAULT_EDGE_TYPE_H_
+
+#include <object/Object.h>
+
+typedef alib::Object DefaultEdgeType;
+
+#endif /* DEFAULT_EDGE_TYPE_H_ */
diff --git a/alib2data/src/common/DefaultNodeType.h b/alib2data/src/common/DefaultNodeType.h
new file mode 100644
index 0000000000000000000000000000000000000000..c8dbbd01d5a3e462efc66d9e05481f4b1a897d08
--- /dev/null
+++ b/alib2data/src/common/DefaultNodeType.h
@@ -0,0 +1,15 @@
+/*
+ * DefaultNodeType.h
+ *
+ *  Created on: Jan 12, 2017
+ *      Author: Jan Travnicek
+ */
+
+#ifndef DEFAULT_NODE_TYPE_H_
+#define DEFAULT_NODE_TYPE_H_
+
+#include <object/Object.h>
+
+typedef alib::Object DefaultNodeType;
+
+#endif /* DEFAULT_NODE_TYPE_H_ */
diff --git a/alib2data/src/indexes/SuffixArray.h b/alib2data/src/indexes/SuffixArray.h
index 86a87172620a36f5900fe07435770e53d43745fb..a0e5f5a5d42e1d40c420b5b0b53688b02a730085 100644
--- a/alib2data/src/indexes/SuffixArray.h
+++ b/alib2data/src/indexes/SuffixArray.h
@@ -16,10 +16,11 @@
 #include <algorithm>
 #include <sstream>
 
+#include <common/DefaultSymbolType.h>
+
 #include <core/components.hpp>
 #include <exception/CommonException.h>
 
-#include <object/Object.h>
 #include <object/UniqueObject.h>
 #include <object/ObjectBase.h>
 
@@ -38,7 +39,7 @@ class GeneralAlphabet;
  * Represents regular expression parsed from the XML. Regular expression is stored
  * as a tree of RegExpElement.
  */
-template < class SymbolType = alib::Object >
+template < class SymbolType = DefaultSymbolType >
 class SuffixArray : public alib::ObjectBase, public std::Components < SuffixArray < SymbolType >, SymbolType, std::tuple < GeneralAlphabet >, std::tuple < > > {
 protected:
 	std::vector < unsigned > m_data;
diff --git a/alib2data/src/indexes/SuffixTrie.h b/alib2data/src/indexes/SuffixTrie.h
index 1373da81a13accb705d242ecb94ede97476ef026..0cc29b818b145bce247ed6312e95aec0b3e7d929 100644
--- a/alib2data/src/indexes/SuffixTrie.h
+++ b/alib2data/src/indexes/SuffixTrie.h
@@ -16,6 +16,9 @@
 #include <algorithm>
 #include <sstream>
 
+#include <common/DefaultNodeType.h>
+#include <common/DefaultEdgeType.h>
+
 #include <core/components.hpp>
 #include <exception/CommonException.h>
 
@@ -25,7 +28,6 @@
 
 #include <sax/FromXMLParserHelper.h>
 #include <core/xmlApi.hpp>
-#include <primitive/Bool.h>
 
 #include <container/ObjectsSet.h>
 #include <container/ObjectsTrie.h>
@@ -41,7 +43,7 @@ class NodeAlphabet;
  * Represents regular expression parsed from the XML. Regular expression is stored
  * as a tree of RegExpElement.
  */
-template < class EdgeType = alib::Object, class NodeType = alib::Object >
+template < class EdgeType = DefaultEdgeType, class NodeType = DefaultNodeType >
 class SuffixTrie : public alib::ObjectBase, public std::Components < SuffixTrie < EdgeType, NodeType >, EdgeType, std::tuple < EdgeAlphabet >, std::tuple < >, NodeType, std::tuple < NodeAlphabet >, std::tuple < > > {
 protected:
 	std::trie < EdgeType, std::variant < void, NodeType > > m_trie;