diff --git a/alib2data/src/tree/Tree.h b/alib2data/src/tree/Tree.h
index 289484438e01979884587bd87b17b7715eefe68a..5ab8a8ef60ecee8e7cf4ea96ad5b2adf8357d018 100644
--- a/alib2data/src/tree/Tree.h
+++ b/alib2data/src/tree/Tree.h
@@ -8,18 +8,12 @@
 #ifndef TREE_H_
 #define TREE_H_
 
-#include <base/WrapperBase.hpp>
-#include "TreeBase.h"
-
 namespace tree {
 
 /**
  * Wrapper around tree.
  */
-class Tree : public base::WrapperBase < TreeBase > {
-	using base::WrapperBase < TreeBase >::WrapperBase;
-
-};
+class Tree;
 
 } /* namespace tree */
 
diff --git a/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp
index 36f09c7a282108c9cbb2711c675660f85c3d2682..75a43cee8936a8ca4ba734f309d4b7965926f250 100644
--- a/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp
+++ b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PostfixRankedTree.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PostfixRankedTree < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PostfixRankedTree < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PostfixRankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PostfixRankedTree < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PostfixRankedTree < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp
index 5c0c40ae297b1cc7e51ee3142978b4741e941e3d..360ef3eeb285f1c4e54722e52e6d00acffd1262d 100644
--- a/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixRankedBarNonlinearPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp
index 360776d1fa2e67703a627d15b5c2c93aaf36a12b..73886e79867345328a3b7648f16e2a3c386d6933 100644
--- a/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixRankedBarPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp
index 9b575999754f4083b1f7c0e33917bbf27f4868b5..9606803924a7db309c11d9651737fe63d9841d1b 100644
--- a/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixRankedBarTree.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarTree < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarTree < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarTree < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp
index cc8d3ea9a04ed83921b6d312df5b264c449bde54..147759dfee60ce73c1f5ca584ef333e4ae6b7625 100644
--- a/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixRankedNonlinearPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedNonlinearPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedNonlinearPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp
index 71b582d100d1395a4a411a899398129049c31f06..0433bc758fd2e231db54db8f29c55aa6caec1460 100644
--- a/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixRankedPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp
index 2bed6ee9e58e605e40d7fa7ffe5f7a1742192e58..854501891597d6fd53453f8df784f46dd08d653b 100644
--- a/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixRankedTree.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedTree < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedTree < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedTree < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedTree < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp
index c4d6c5dce9e9f52d6e23b10d15cbecf9be66c0e3..c739583b90a521068f585e5fbf85d65c14d9f1be 100644
--- a/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "RankedNonlinearPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::RankedNonlinearPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedNonlinearPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/RankedPattern.cpp b/alib2data/src/tree/xml/ranked/RankedPattern.cpp
index 8817ae3ca4a0f77f2bd379296487ad994da8ee25..ee5d495937c1b43fe914c88976b54d1996c06ff3 100644
--- a/alib2data/src/tree/xml/ranked/RankedPattern.cpp
+++ b/alib2data/src/tree/xml/ranked/RankedPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "RankedPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::RankedPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/RankedTree.cpp b/alib2data/src/tree/xml/ranked/RankedTree.cpp
index 47296deea33058fc405beaa4233a82ebc85cd631..581e318742ab1527c062a9cf0315a644880899ec 100644
--- a/alib2data/src/tree/xml/ranked/RankedTree.cpp
+++ b/alib2data/src/tree/xml/ranked/RankedTree.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "RankedTree.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::RankedTree < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedTree < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedTree < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedTree < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp b/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp
index 999f34ee34da73aaefb5d3864de0cdb965a47391..3f8883258401e915780c9c1d1dc4611b76342b95 100644
--- a/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp
+++ b/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "PrefixBarTree.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixBarTree < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixBarTree < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixBarTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixBarTree < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixBarTree < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp
index 77de071ad2892569efc088128f93547898446825..6d861c2c818bcc33359b733c31803855e723bd32 100644
--- a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "UnrankedNonlinearPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedNonlinearPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedNonlinearPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp b/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp
index f84704cbcdbb005359fadd5483d28c1ae0f88a9a..afbee06192ab74891055a16abf4fb92e80e93ba2 100644
--- a/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp
+++ b/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "UnrankedPattern.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedPattern < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedPattern < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedPattern < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/UnrankedTree.cpp b/alib2data/src/tree/xml/unranked/UnrankedTree.cpp
index b57cba92a8f936545b4d3e4e1c20a0da427d9612..c1af83997b31db967277ae4aa4195e1d9c67d417 100644
--- a/alib2data/src/tree/xml/unranked/UnrankedTree.cpp
+++ b/alib2data/src/tree/xml/unranked/UnrankedTree.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "UnrankedTree.h"
-#include <tree/Tree.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedTree < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedTree < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedTree < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedTree < > > ( );
 
 } /* namespace */