diff --git a/alib2data/src/tree/RankedTreeBase.h b/alib2data/src/tree/RankedTreeBase.h
deleted file mode 100644
index aff83a746d67ccab567ae118c28fe216d1561e52..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/RankedTreeBase.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * RankedTreeBase.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Stepan Plachy
- */
-
-#ifndef RANKED_TREE_BASE_H_
-#define RANKED_TREE_BASE_H_
-
-#include "TreeBase.h"
-#include <set>
-
-namespace tree {
-
-/**
- * Represents symbol in an alphabet.
- */
-class RankedTreeBase : public TreeBase {
-public:
-	virtual RankedTreeBase * clone ( ) const = 0;
-	virtual RankedTreeBase * plunder ( ) && = 0;
-};
-
-} /* namespace tree */
-
-#endif /* RANKED_TREE_BASE_H_ */
diff --git a/alib2data/src/tree/RankedTreeWrapper.h b/alib2data/src/tree/RankedTreeWrapper.h
deleted file mode 100644
index 3aeaa34ab5aa062df6f2a4d2a741a585d75850c0..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/RankedTreeWrapper.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * RankedTreeWrapper.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Stepan Plachy
- */
-
-#ifndef RANKED_TREE_WRAPPER_H_
-#define RANKED_TREE_WRAPPER_H_
-
-#include <base/WrapperBase.hpp>
-#include "RankedTreeBase.h"
-
-namespace tree {
-
-/**
- * Wrapper around tree.
- */
-class RankedTreeWrapper : public alib::WrapperBase < RankedTreeBase > {
-	using alib::WrapperBase < RankedTreeBase >::WrapperBase;
-
-};
-
-} /* namespace tree */
-
-#endif /* RANKED_TREE_WRAPPER_H- */
diff --git a/alib2data/src/tree/TreeFeatures.h b/alib2data/src/tree/TreeFeatures.h
index 2828aed74b819760157b61b4277ad9705c710d12..728068e4de8a94ebff3acb6af0db863ac8e51151 100644
--- a/alib2data/src/tree/TreeFeatures.h
+++ b/alib2data/src/tree/TreeFeatures.h
@@ -30,8 +30,6 @@ enum class FEATURES {
 };
 
 class Tree;
-class RankedTreeWrapper;
-class UnrankedTreeWrapper;
 class TreeBase;
 
 template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType >
diff --git a/alib2data/src/tree/UnrankedTreeBase.h b/alib2data/src/tree/UnrankedTreeBase.h
deleted file mode 100644
index f59ecf9bf4790de861a9bc73c3a1ed853458fd8d..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/UnrankedTreeBase.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * UnrankedTreeBase.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Jan Tranicek
- */
-
-#ifndef UNRANKED_TREE_BASE_H_
-#define UNRANKED_TREE_BASE_H_
-
-#include "TreeBase.h"
-#include <set>
-
-namespace tree {
-
-/**
- * Represents symbol in an alphabet.
- */
-class UnrankedTreeBase : public TreeBase {
-public:
-	virtual UnrankedTreeBase * clone ( ) const = 0;
-	virtual UnrankedTreeBase * plunder ( ) && = 0;
-};
-
-} /* namespace tree */
-
-#endif /* UNRANKED_TREE_BASE_H_ */
diff --git a/alib2data/src/tree/UnrankedTreeWrapper.h b/alib2data/src/tree/UnrankedTreeWrapper.h
deleted file mode 100644
index 37b09e246eade2918cff1e85114882d9568444bc..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/UnrankedTreeWrapper.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * UnrankedTreeWrapper.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Jan Travnicek
- */
-
-#ifndef UNRANKED_TREE_WRAPPER_H_
-#define UNRANKED_TREE_WRAPPER_H_
-
-#include <base/WrapperBase.hpp>
-#include "UnrankedTreeBase.h"
-
-namespace tree {
-
-/**
- * Wrapper around tree.
- */
-class UnrankedTreeWrapper : public alib::WrapperBase < UnrankedTreeBase > {
-	using alib::WrapperBase < UnrankedTreeBase >::WrapperBase;
-
-};
-
-} /* namespace tree */
-
-#endif /* UNRANKED_TREE_WRAPPER_H_ */
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/ranked/PostfixRankedTree.cpp
index 26066a4e61f4eed08f1a265999f76d2df0d985de..e3994aafc4cc826b5bb993c2fbd123880327678e 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PostfixRankedTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::RankedTreeWrapper, tree::PostfixRankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PostfixRankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PostfixRankedTree < > > ( );
 
 static auto PostfixRankedTreeFromRankedTree = registration::CastRegister < tree::PostfixRankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.h b/alib2data/src/tree/ranked/PostfixRankedTree.h
index a5d1ae67d49ed2fbed3de25fe33c58384b9fea06..5442e0f32b22cc4333293be5eb35a612cef68fcc 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.h
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -39,7 +39,7 @@ class GeneralAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PostfixRankedTree final : public RankedTreeBase, public alib::Components < PostfixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
+class PostfixRankedTree final : public TreeBase, public alib::Components < PostfixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPostfixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -49,8 +49,8 @@ public:
 	explicit PostfixRankedTree ( ext::vector < common::ranked_symbol < SymbolType, RankType > > data );
 	explicit PostfixRankedTree ( const RankedTree < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -137,12 +137,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PostfixRankedTree
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PostfixRankedTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * PostfixRankedTree < SymbolType, RankType >::clone ( ) const {
 	return new PostfixRankedTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PostfixRankedTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PostfixRankedTree < SymbolType, RankType >::plunder ( ) && {
 	return new PostfixRankedTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
index b62822412378b82d8c27c90b8a36d87f85655915..86b7f9febbb7fdee1698c8fca1d737e6d0ab1a96 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedBarNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarNo
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedBarNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
 
 static auto PrefixRankedBarNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedTree < > > ( );
 static auto PrefixRankedBarNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedPattern < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
index 95825ddc30df50c3e4d2aa034b09affc0edaf276..8896c20767dd4d835aa1eb7183a7c779df7e82cf 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -48,7 +48,7 @@ class NonlinearAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedBarNonlinearPattern final : public RankedTreeBase, public alib::Components < PrefixRankedBarNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
+class PrefixRankedBarNonlinearPattern final : public TreeBase, public alib::Components < PrefixRankedBarNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRankedBar ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & node, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const ext::set < common::ranked_symbol < SymbolType, RankType > > & nonlinearVariables, const SymbolType & barBase, const common::ranked_symbol < SymbolType, RankType > & variablesBar );
@@ -66,8 +66,8 @@ public:
 	explicit PrefixRankedBarNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree );
 	explicit PrefixRankedBarNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -228,12 +228,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedBarNo
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedBarNonlinearPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedBarNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
index 91db74cb265f0717703f8b222d37f80f1ed5f5ce..16ba8a4ff8f15fe4627760ddb1136aa95202366b 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedBarPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarPa
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedBarPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarPattern < > > ( );
 
 static auto PrefixRankedBarPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::RankedPattern < > > ( );
 static auto PrefixRankedBarPatternFromPrefixRankedBarTree = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::PrefixRankedBarTree < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
index 8a19925cee64626337949dc3ee541424a272b15f..d0883ec5ed8650a05b1656bf9d539b06f825ec76 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -47,7 +47,7 @@ class VariablesBarSymbol;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedBarPattern final : public RankedTreeBase, public alib::Components < PrefixRankedBarPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
+class PrefixRankedBarPattern final : public TreeBase, public alib::Components < PrefixRankedBarPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRankedBar ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & node, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const SymbolType & barBase, const common::ranked_symbol < SymbolType, RankType > & variablesBar );
@@ -59,8 +59,8 @@ public:
 	explicit PrefixRankedBarPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree );
 	explicit PrefixRankedBarPattern ( const RankedPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -186,12 +186,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedBarPa
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedBarPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedBarPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedBarPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedBarPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
index 1353de9931de76dc050c47c31d554a7d862e4280..593855a4aa54cfb3dbb5492e767456514b0c6e8e 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedBarTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarTr
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedBarTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarTree < > > ( );
 
 static auto PrefixRankedBarTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedBarTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h
index 267b8e09ef91e5d58fbbece4feac28a121a14b4f..6ea16a40f0590aa84b80f4f1d0db2098a4c60540 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -43,7 +43,7 @@ class BarSymbols;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedBarTree final : public RankedTreeBase, public alib::Components < PrefixRankedBarTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols > > {
+class PrefixRankedBarTree final : public TreeBase, public alib::Components < PrefixRankedBarTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols > > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRankedBar ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & node, const SymbolType & barBase );
@@ -54,8 +54,8 @@ public:
 	explicit PrefixRankedBarTree ( SymbolType barBase, const RankedTree < SymbolType, RankType > & tree );
 	explicit PrefixRankedBarTree ( const RankedTree < > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -157,12 +157,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedBarTr
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedBarTree < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedBarTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedBarTree < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedBarTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
index 3ac01a2e323b4bdf176352007b41eb0328252771..d3fc4b669093ed3869b8d3186f164bcd757381ec 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedNonli
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedNonlinearPattern < > > ( );
 
 static auto PrefixRankedNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedTree < > > ( );
 static auto PrefixRankedNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedPattern < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
index cfe54782637e8ff992f65ffb5ca97186581f3416..20bb291a0a59bfb32a922af56d4f5f6c11a283c4 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -43,7 +43,7 @@ class NonlinearAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedNonlinearPattern final : public RankedTreeBase, public alib::Components < PrefixRankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class PrefixRankedNonlinearPattern final : public TreeBase, public alib::Components < PrefixRankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -58,8 +58,8 @@ public:
 	explicit PrefixRankedNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree );
 	explicit PrefixRankedNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -186,12 +186,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedNonli
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedNonlinearPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
index 285815c5f559d1ad34d9ee74d4a07281337f0509..c8f2f975d1deadb2aa6854d166270c9cdef63744 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedPatte
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedPattern < > > ( );
 
 static auto PrefixRankedPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedPattern < >, tree::RankedPattern < > > ( );
 static auto PrefixRankedPatternFromPrefixRankedTree = registration::CastRegister < tree::PrefixRankedPattern < >, tree::PrefixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h
index b498e8bd38893de5e2cf93ca8bacc974f610c918..a7a2e1fb638ca9919faf95f972121c5d74a7c65a 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -42,7 +42,7 @@ class SubtreeWildcard;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedPattern final : public RankedTreeBase, public alib::Components < PrefixRankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class PrefixRankedPattern final : public TreeBase, public alib::Components < PrefixRankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -53,8 +53,8 @@ public:
 	explicit PrefixRankedPattern ( const PrefixRankedTree < SymbolType, RankType > & tree );
 	explicit PrefixRankedPattern ( const RankedPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -154,12 +154,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedPatte
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
index 831b355cb613b6490991fad1b5d1bf7fa0ac1b94..84045e71f5c9fe0deaf1f0e8f2a1f37ac69cae50 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::RankedTreeWrapper, tree::PrefixRankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedTree < > > ( );
 
 static auto PrefixRankedTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h
index 405bf3297344446a4b3a24f6abe60b396febffe9..9b05269d64d019e507b7d7c7fbf8e0c2af5d8251 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.h
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -39,7 +39,7 @@ class GeneralAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedTree final : public RankedTreeBase, public alib::Components < PrefixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
+class PrefixRankedTree final : public TreeBase, public alib::Components < PrefixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -49,8 +49,8 @@ public:
 	explicit PrefixRankedTree ( ext::vector < common::ranked_symbol < SymbolType, RankType > > data );
 	explicit PrefixRankedTree ( const RankedTree < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -137,12 +137,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedTree
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedTree < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedTree < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
index 66d23f38fbfc8ec09dccb9c083755f2761abdcc0..2159dd4e64369440fd1828cca829b871f78c5940 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "RankedNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,7 +24,6 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::RankedNonlinearPa
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::RankedNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
index 76730b4b0fb92ba705fb2a19c594d4a56d4ecdf3..d5914da587d78c2fed581c69f122fff2f4bf7f7f 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -42,7 +42,7 @@ class NonlinearAlphabet;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType, class RankType >
-class RankedNonlinearPattern final : public RankedTreeBase, public alib::Components < RankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class RankedNonlinearPattern final : public TreeBase, public alib::Components < RankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > m_content;
 
 	void checkAlphabet ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & pattern ) const;
@@ -53,12 +53,12 @@ public:
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::clone() const
 	 */
-	virtual RankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::plunder() const
 	 */
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit RankedNonlinearPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
 	explicit RankedNonlinearPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
@@ -165,12 +165,12 @@ RankedNonlinearPattern < SymbolType, RankType >::RankedNonlinearPattern ( const
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * RankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
 	return new RankedNonlinearPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * RankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
 	return new RankedNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cpp
index ce25d87d6d3878838c01e41dd3a5bbbdab6c0177..2a1a038cb9f9193c66b08c610c027e735df57910 100644
--- a/alib2data/src/tree/ranked/RankedPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "RankedPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::RankedTreeWrapper, tree::RankedPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedPattern < > > ( );
 
 static auto RankedPatternFromUnrankedPattern = registration::CastRegister < tree::RankedPattern < >, tree::UnrankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h
index 05a41330325b0075068c126a43c76caca47fc5c6..6022dcb07a402504e6c3bc961627c0c69e7ff55e 100644
--- a/alib2data/src/tree/ranked/RankedPattern.h
+++ b/alib2data/src/tree/ranked/RankedPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -41,7 +41,7 @@ class SubtreeWildcard;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType, class RankType >
-class RankedPattern final : public RankedTreeBase, public alib::Components < RankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class RankedPattern final : public TreeBase, public alib::Components < RankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > m_content;
 
 	void checkAlphabet ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & pattern ) const;
@@ -52,12 +52,12 @@ public:
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::clone() const
 	 */
-	virtual RankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::plunder() const
 	 */
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit RankedPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
 	explicit RankedPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
@@ -151,12 +151,12 @@ RankedPattern < SymbolType, RankType >::RankedPattern ( const UnrankedPattern <
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * RankedPattern < SymbolType, RankType >::clone ( ) const {
 	return new RankedPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * RankedPattern < SymbolType, RankType >::plunder ( ) && {
 	return new RankedPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cpp
index 1012c30e693defa307fae0e9b3458993caba2151..50170c7f688400237f827da8a2a0c73a06e794c5 100644
--- a/alib2data/src/tree/ranked/RankedTree.cpp
+++ b/alib2data/src/tree/ranked/RankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "RankedTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::RankedTreeWrapper, tree::RankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedTree < > > ( );
 
 static auto RankedTreeFromUnrankedTree = registration::CastRegister < tree::RankedTree < >, tree::UnrankedTree < > > ( );
 static auto RankedTreeFromPostfixRankedTree = registration::CastRegister < tree::RankedTree < >, tree::PostfixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/RankedTree.h b/alib2data/src/tree/ranked/RankedTree.h
index d51ab74874d355a38d91afc1a6ba9b1487d5fc76..e72d4ca6974ccb36c485c99dc6091f106c4629eb 100644
--- a/alib2data/src/tree/ranked/RankedTree.h
+++ b/alib2data/src/tree/ranked/RankedTree.h
@@ -22,7 +22,7 @@
 #include <alphabet/xml/RankedSymbol.h>
 
 #include "../TreeFeatures.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../TreeException.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
@@ -41,7 +41,7 @@ class GeneralAlphabet;
  * as a tree of RegExpElement.
  */
 template < class SymbolType, class RankType >
-class RankedTree final : public RankedTreeBase, public alib::Components < RankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
+class RankedTree final : public TreeBase, public alib::Components < RankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > m_content;
 
 	void checkAlphabet ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & pattern ) const;
@@ -52,12 +52,12 @@ public:
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::clone() const
 	 */
-	virtual RankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::plunder() const
 	 */
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit RankedTree ( ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > tree );
 	explicit RankedTree ( ext::tree < common::ranked_symbol < SymbolType, RankType > > tree );
@@ -149,12 +149,12 @@ RankedTree < SymbolType, RankType >::RankedTree ( const PostfixRankedTree < Symb
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * RankedTree < SymbolType, RankType >::clone ( ) const {
 	return new RankedTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * RankedTree < SymbolType, RankType >::plunder ( ) && {
 	return new RankedTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cpp
index ae0d9fada20c17fa80aed3fe45d5c494ccc25ad1..52a09947436742f0462cf10f5a04949c4932cf77 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.cpp
+++ b/alib2data/src/tree/unranked/PrefixBarTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixBarTree.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::UnrankedTreeWrapper, tree::PrefixBarTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixBarTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixBarTree < > > ( );
 
 static auto PrefixBarTreeFromUnrankedTree = registration::CastRegister < tree::PrefixBarTree < >, tree::UnrankedTree < > > ( );
 
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.h b/alib2data/src/tree/unranked/PrefixBarTree.h
index 8fabd6ff291b00e47c102907cf1ee4ffa95edf3f..57000783222e6c8c02053866ac49a8b8836eba3c 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.h
+++ b/alib2data/src/tree/unranked/PrefixBarTree.h
@@ -20,7 +20,7 @@
 #include <object/UniqueObject.h>
 
 #include "../TreeFeatures.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../TreeException.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
@@ -39,7 +39,7 @@ class BarSymbol;
  * Represents a tree in prefix bar notation.
  */
 template < class SymbolType >
-class PrefixBarTree final : public UnrankedTreeBase, public alib::Components < PrefixBarTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, BarSymbol > {
+class PrefixBarTree final : public TreeBase, public alib::Components < PrefixBarTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, BarSymbol > {
 	ext::vector < SymbolType > m_Data;
 
 	static ext::vector < SymbolType > toPrefixBar ( const ext::tree < SymbolType > & tree, const SymbolType & bar );
@@ -50,8 +50,8 @@ public:
 	explicit PrefixBarTree ( SymbolType bar, const UnrankedTree < SymbolType > & tree );
 	explicit PrefixBarTree ( const UnrankedTree < SymbolType > & tree );
 
-	virtual UnrankedTreeBase * clone ( ) const;
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < SymbolType > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -153,12 +153,12 @@ ext::vector < SymbolType > PrefixBarTree < SymbolType >::toPrefixBar ( const ext
 }
 
 template < class SymbolType >
-UnrankedTreeBase * PrefixBarTree < SymbolType >::clone ( ) const {
+TreeBase * PrefixBarTree < SymbolType >::clone ( ) const {
 	return new PrefixBarTree ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * PrefixBarTree < SymbolType >::plunder ( ) && {
+TreeBase * PrefixBarTree < SymbolType >::plunder ( ) && {
 	return new PrefixBarTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
index ddc1ed920fd2c810860264414d99ee10436905b6..93e31027f840cdc2e5d31c30793a99d5a9bd41ec 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "UnrankedNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,7 +24,6 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedNonlinear
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::UnrankedTreeWrapper, tree::UnrankedNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
index fda1bdc99bb134c44dcb8da33143689a7810d007..e9c6f8aacc538b5cac133c06eef6abb52d1f6b75 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
@@ -21,7 +21,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -40,7 +40,7 @@ class NonlinearAlphabet;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType >
-class UnrankedNonlinearPattern final : public UnrankedTreeBase, public alib::Components < UnrankedNonlinearPattern < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, SymbolType, component::Value, SubtreeWildcard > {
+class UnrankedNonlinearPattern final : public TreeBase, public alib::Components < UnrankedNonlinearPattern < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, SymbolType, component::Value, SubtreeWildcard > {
 	ext::tree < SymbolType > m_content;
 
 	void checkAlphabet ( const ext::tree < SymbolType > & pattern ) const;
@@ -49,12 +49,12 @@ public:
 	/**
 	 * @copydoc ext::tree < SymbolType >::clone() const
 	 */
-	virtual UnrankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < SymbolType >::plunder() const
 	 */
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > nonlinearVariables, ext::set < SymbolType > alphabet, ext::tree < SymbolType > pattern );
 	explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > nonlinearVariables, ext::tree < SymbolType > pattern );
@@ -168,12 +168,12 @@ UnrankedNonlinearPattern < SymbolType >::UnrankedNonlinearPattern ( const Ranked
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedNonlinearPattern < SymbolType >::clone ( ) const {
+TreeBase * UnrankedNonlinearPattern < SymbolType >::clone ( ) const {
 	return new UnrankedNonlinearPattern ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedNonlinearPattern < SymbolType >::plunder ( ) && {
+TreeBase * UnrankedNonlinearPattern < SymbolType >::plunder ( ) && {
 	return new UnrankedNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cpp
index 5481748d7db1b34bfbb64ab3cbef0e7499f640b4..bf3d35728ee44003ab5f90d28ec5bf3ebd1ae890 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "UnrankedPattern.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::UnrankedTreeWrapper, tree::UnrankedPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedPattern < > > ( );
 
 static auto UnrankedPatternFromRankedPattern = registration::CastRegister < tree::UnrankedPattern < >, tree::RankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h
index 0b09a1ca63aedf64d289d5c036aee972ec327fca..6998077b6c5344d7a1fcd9442fb10e3b46487ec1 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedPattern.h
@@ -21,7 +21,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -39,7 +39,7 @@ class SubtreeWildcard;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType >
-class UnrankedPattern final : public UnrankedTreeBase, public alib::Components < UnrankedPattern < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, SubtreeWildcard > {
+class UnrankedPattern final : public TreeBase, public alib::Components < UnrankedPattern < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, SubtreeWildcard > {
 	ext::tree < SymbolType > m_content;
 
 	void checkAlphabet ( const ext::tree < SymbolType > & pattern ) const;
@@ -48,12 +48,12 @@ public:
 	/**
 	 * @copydoc UnrankedNode::clone() const
 	 */
-	virtual UnrankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc UnrankedNode::plunder() const
 	 */
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit UnrankedPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > alphabet, ext::tree < SymbolType > pattern );
 	explicit UnrankedPattern ( SymbolType subtreeWildcard, ext::tree < SymbolType > pattern );
@@ -148,12 +148,12 @@ UnrankedPattern < SymbolType >::UnrankedPattern ( const RankedPattern < SymbolTy
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedPattern < SymbolType >::clone ( ) const {
+TreeBase * UnrankedPattern < SymbolType >::clone ( ) const {
 	return new UnrankedPattern ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedPattern < SymbolType >::plunder ( ) && {
+TreeBase * UnrankedPattern < SymbolType >::plunder ( ) && {
 	return new UnrankedPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cpp
index 0a3d53b20d0cc158f267a18e2bd9deee9e83a5f2..246dd7d2cf6c2eb983c0e1650d62b16014168ba8 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.cpp
+++ b/alib2data/src/tree/unranked/UnrankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "UnrankedTree.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ 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 < tree::UnrankedTreeWrapper, tree::UnrankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedTree < > > ( );
 
 static auto UnrankedTreeFromRankedTree = registration::CastRegister < tree::UnrankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h
index c24fb26620461af1c3d4da1efe96903b71efd9a8..56ea7ee0b2d11b01562cf17081486a9b4fe3b5c8 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.h
+++ b/alib2data/src/tree/unranked/UnrankedTree.h
@@ -20,7 +20,7 @@
 #include <object/UniqueObject.h>
 
 #include "../TreeFeatures.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../TreeException.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
@@ -38,7 +38,7 @@ class GeneralAlphabet;
  * as a tree of RegExpElement.
  */
 template < class SymbolType >
-class UnrankedTree final : public UnrankedTreeBase, public alib::Components < UnrankedTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > {
+class UnrankedTree final : public TreeBase, public alib::Components < UnrankedTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > {
 	ext::tree < SymbolType > m_content;
 
 	void checkAlphabet ( const ext::tree < SymbolType > & pattern ) const;
@@ -47,12 +47,12 @@ public:
 	/**
 	 * @copydoc UnrankedNode::clone() const
 	 */
-	virtual UnrankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc UnrankedNode::plunder() const
 	 */
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit UnrankedTree ( ext::set < SymbolType > alphabet, ext::tree < SymbolType > tree );
 	explicit UnrankedTree ( ext::tree < SymbolType > tree );
@@ -139,12 +139,12 @@ UnrankedTree < SymbolType >::UnrankedTree ( const RankedTree < SymbolType, RankT
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedTree < SymbolType >::clone ( ) const {
+TreeBase * UnrankedTree < SymbolType >::clone ( ) const {
 	return new UnrankedTree ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedTree < SymbolType >::plunder ( ) && {
+TreeBase * UnrankedTree < SymbolType >::plunder ( ) && {
 	return new UnrankedTree ( std::move ( * this ) );
 }