diff --git a/alib2data/src/tree/ranked/LinearizedTree.cpp b/alib2data/src/tree/ranked/LinearizedTree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7d3df943c41eb057b431765dcf29df945c10e9cb
--- /dev/null
+++ b/alib2data/src/tree/ranked/LinearizedTree.cpp
@@ -0,0 +1,7 @@
+#include "PostfixRankedTree.cxx"
+#include "PrefixRankedBarNonlinearPattern.cxx"
+#include "PrefixRankedBarPattern.cxx"
+#include "PrefixRankedBarTree.cxx"
+#include "PrefixRankedNonlinearPattern.cxx"
+#include "PrefixRankedPattern.cxx"
+#include "PrefixRankedTree.cxx"
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/ranked/PostfixRankedTree.cxx
similarity index 75%
rename from alib2data/src/tree/ranked/PostfixRankedTree.cpp
rename to alib2data/src/tree/ranked/PostfixRankedTree.cxx
index ab3df4021374bc6364bb2ae6c4009c4895a1d247..12190239287b99fbff7b579978272776fc704ed7 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.cxx
@@ -15,9 +15,9 @@ template class tree::PostfixRankedTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PostfixRankedTree < > > ( );
+auto componentsPostfixRankedTree = registration::ComponentRegister < tree::PostfixRankedTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PostfixRankedTree < > > ( );
+auto valuePrinterPostfixRankedTree = registration::ValuePrinterRegister < tree::PostfixRankedTree < > > ( );
 
 auto PostfixRankedTreeFromRankedTree = registration::CastRegister < tree::PostfixRankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cxx
similarity index 84%
rename from alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
rename to alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cxx
index d32cfc0c0d7edef5b895c11e18b9f9a241031fb8..6629fb6d2f4304f3d58b650cccdb0bda7b94ae5f 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixRankedBarNonlinearPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
+auto componentsPrefixRankedBarNonlinearPattern = registration::ComponentRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
+auto valuePrinterPrefixRankedBarNonlinearPattern = registration::ValuePrinterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
 
 auto PrefixRankedBarNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedTree < > > ( );
 auto PrefixRankedBarNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedPattern < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cxx
similarity index 78%
rename from alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
rename to alib2data/src/tree/ranked/PrefixRankedBarPattern.cxx
index f87f06dc436dcbfdf10cc579a5f8372f999a8511..620e996038475d0e8bb87f32d587be746eafa911 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixRankedBarPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixRankedBarPattern < > > ( );
+auto componentsPrefixRankedBarPattern = registration::ComponentRegister < tree::PrefixRankedBarPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedBarPattern < > > ( );
+auto valuePrinterPrefixRankedBarPattern = registration::ValuePrinterRegister < tree::PrefixRankedBarPattern < > > ( );
 
 auto PrefixRankedBarPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::RankedPattern < > > ( );
 auto PrefixRankedBarPatternFromPrefixRankedBarTree = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::PrefixRankedBarTree < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cxx
similarity index 74%
rename from alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
rename to alib2data/src/tree/ranked/PrefixRankedBarTree.cxx
index 4453fe161b48a6f68f29858ea1b60c444abec6b7..cbe95f8233a5bec4b4c836974c5000f648354a5c 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixRankedBarTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixRankedBarTree < > > ( );
+auto componentsPrefixRankedBarTree = registration::ComponentRegister < tree::PrefixRankedBarTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedBarTree < > > ( );
+auto valuePrinterPrefixRankedBarTree = registration::ValuePrinterRegister < tree::PrefixRankedBarTree < > > ( );
 
 auto PrefixRankedBarTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedBarTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cxx
similarity index 84%
rename from alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
rename to alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cxx
index 78a830a5e8277100e3ed54d31f6b024716a16ef0..b4d2cad1f33c77840971508870d3183df45595d5 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixRankedNonlinearPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixRankedNonlinearPattern < > > ( );
+auto componentsPrefixRankedNonlinearPattern = registration::ComponentRegister < tree::PrefixRankedNonlinearPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedNonlinearPattern < > > ( );
+auto valuePrinterPrefixRankedNonlinearPattern = registration::ValuePrinterRegister < tree::PrefixRankedNonlinearPattern < > > ( );
 
 auto PrefixRankedNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedTree < > > ( );
 auto PrefixRankedNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedPattern < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cxx
similarity index 78%
rename from alib2data/src/tree/ranked/PrefixRankedPattern.cpp
rename to alib2data/src/tree/ranked/PrefixRankedPattern.cxx
index 37c468a056f7a9e061425ebc2a58f96a03dd9392..6469fa6380b65915aa022d9c8181fa9591183213 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixRankedPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixRankedPattern < > > ( );
+auto componentsPrefixRankedPattern = registration::ComponentRegister < tree::PrefixRankedPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedPattern < > > ( );
+auto valuePrinterPrefixRankedPattern = registration::ValuePrinterRegister < tree::PrefixRankedPattern < > > ( );
 
 auto PrefixRankedPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedPattern < >, tree::RankedPattern < > > ( );
 auto PrefixRankedPatternFromPrefixRankedTree = registration::CastRegister < tree::PrefixRankedPattern < >, tree::PrefixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cxx
similarity index 78%
rename from alib2data/src/tree/ranked/PrefixRankedTree.cpp
rename to alib2data/src/tree/ranked/PrefixRankedTree.cxx
index 12b32e2b884d85050cbaa4cbffac32fa9c49f234..ff9e8ce37e410571be9d8ad3e3a848cadcb4e850 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixRankedTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixRankedTree < > > ( );
+auto componentsPrefixRankedTree = registration::ComponentRegister < tree::PrefixRankedTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedTree < > > ( );
+auto valuePrinterPrefixRankedTree = registration::ValuePrinterRegister < tree::PrefixRankedTree < > > ( );
 
 auto PrefixRankedTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedTree < >, tree::RankedTree < > > ( );
 auto PrefixRankedTreeFromPostfixRankedTree = registration::CastRegister < tree::PrefixRankedTree < >, tree::PostfixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/RankedNonlinearPattern.cxx
similarity index 61%
rename from alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
rename to alib2data/src/tree/ranked/RankedNonlinearPattern.cxx
index 0369d232693942cb8edbd6c6a9104a1bd6e87df4..18fa02a629f577c4b447c8f84fc511299e4b26fe 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.cxx
@@ -15,8 +15,8 @@ template class tree::RankedNonlinearPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::RankedNonlinearPattern < > > ( );
+auto componentsRankedNonlinearPattern = registration::ComponentRegister < tree::RankedNonlinearPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::RankedNonlinearPattern < > > ( );
+auto valuePrinterRankedNonlinearPattern = registration::ValuePrinterRegister < tree::RankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cxx
similarity index 70%
rename from alib2data/src/tree/ranked/RankedPattern.cpp
rename to alib2data/src/tree/ranked/RankedPattern.cxx
index 478e40d1b2dac9aa19aeb8ff2456561e64503f48..35c95308d71d3ae48459cc487bed2b153facaf79 100644
--- a/alib2data/src/tree/ranked/RankedPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedPattern.cxx
@@ -15,9 +15,9 @@ template class tree::RankedPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::RankedPattern < > > ( );
+auto componentsRankedPattern = registration::ComponentRegister < tree::RankedPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::RankedPattern < > > ( );
+auto valuePrinterRankedPattern = registration::ValuePrinterRegister < tree::RankedPattern < > > ( );
 
 auto RankedPatternFromUnrankedPattern = registration::CastRegister < tree::RankedPattern < >, tree::UnrankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cxx
similarity index 79%
rename from alib2data/src/tree/ranked/RankedTree.cpp
rename to alib2data/src/tree/ranked/RankedTree.cxx
index 76b11754af3c507e5320a3ebbc3dccd163d6a62d..ef7649e642634fc742a867279bab6649c0dc63f8 100644
--- a/alib2data/src/tree/ranked/RankedTree.cpp
+++ b/alib2data/src/tree/ranked/RankedTree.cxx
@@ -15,9 +15,9 @@ template class tree::RankedTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::RankedTree < > > ( );
+auto componentsRankedTree = registration::ComponentRegister < tree::RankedTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::RankedTree < > > ( );
+auto valuePrinterRankedTree = registration::ValuePrinterRegister < tree::RankedTree < > > ( );
 
 auto RankedTreeFromUnrankedTree = registration::CastRegister < tree::RankedTree < >, tree::UnrankedTree < > > ( );
 auto RankedTreeFromPostfixRankedTree = registration::CastRegister < tree::RankedTree < >, tree::PostfixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/Tree.cpp b/alib2data/src/tree/ranked/Tree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8158c3c2d953bda8845e5b53e41d82ae1270046d
--- /dev/null
+++ b/alib2data/src/tree/ranked/Tree.cpp
@@ -0,0 +1,5 @@
+#include "RankedNonlinearPattern.cxx"
+#include "RankedPattern.cxx"
+#include "RankedTree.cxx"
+#include "UnorderedRankedPattern.cxx"
+#include "UnorderedRankedTree.cxx"
diff --git a/alib2data/src/tree/ranked/UnorderedRankedPattern.cpp b/alib2data/src/tree/ranked/UnorderedRankedPattern.cxx
similarity index 68%
rename from alib2data/src/tree/ranked/UnorderedRankedPattern.cpp
rename to alib2data/src/tree/ranked/UnorderedRankedPattern.cxx
index 54bdd6a828ed4eb49f3ecda49f9e48767c06164d..a562364a6e7f01b03cc0f4069177f8c95ca9ff5e 100644
--- a/alib2data/src/tree/ranked/UnorderedRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/UnorderedRankedPattern.cxx
@@ -15,9 +15,9 @@ template class tree::UnorderedRankedPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::UnorderedRankedPattern < > > ( );
+auto componentsUnorderedRankedPattern = registration::ComponentRegister < tree::UnorderedRankedPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::UnorderedRankedPattern < > > ( );
+auto valuePrinterUnorderedRankedPattern = registration::ValuePrinterRegister < tree::UnorderedRankedPattern < > > ( );
 
 auto UnorderedRankedPatternFromRankedPattern = registration::CastRegister < tree::UnorderedRankedPattern < >, tree::RankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/ranked/UnorderedRankedTree.cpp b/alib2data/src/tree/ranked/UnorderedRankedTree.cxx
similarity index 69%
rename from alib2data/src/tree/ranked/UnorderedRankedTree.cpp
rename to alib2data/src/tree/ranked/UnorderedRankedTree.cxx
index 74accbc97ea1dd1ecb270d439d7546ea6ef4a048..8f2927069772c4d87e3f35e59c61bad06b337b93 100644
--- a/alib2data/src/tree/ranked/UnorderedRankedTree.cpp
+++ b/alib2data/src/tree/ranked/UnorderedRankedTree.cxx
@@ -15,9 +15,9 @@ template class tree::UnorderedRankedTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::UnorderedRankedTree < > > ( );
+auto componentsUnorderedRankedTree = registration::ComponentRegister < tree::UnorderedRankedTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::UnorderedRankedTree < > > ( );
+auto valuePrinterUnorderedRankedTree = registration::ValuePrinterRegister < tree::UnorderedRankedTree < > > ( );
 
 auto UnorderedRankedTreeFromRankedTree = registration::CastRegister < tree::UnorderedRankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cxx
similarity index 74%
rename from alib2data/src/tree/unranked/PrefixBarTree.cpp
rename to alib2data/src/tree/unranked/PrefixBarTree.cxx
index 1a9be1e7281c966b96de2819701ebe36fa8ac9c3..79dc51b27b9121ddb8e9ec32d687fabe53330318 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.cpp
+++ b/alib2data/src/tree/unranked/PrefixBarTree.cxx
@@ -15,9 +15,9 @@ template class tree::PrefixBarTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::PrefixBarTree < > > ( );
+auto componentsPrefixBarTree = registration::ComponentRegister < tree::PrefixBarTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixBarTree < > > ( );
+auto valuePrinterPrefixBarTree = registration::ValuePrinterRegister < tree::PrefixBarTree < > > ( );
 
 auto PrefixBarTreeFromUnrankedTree = registration::CastRegister < tree::PrefixBarTree < >, tree::UnrankedTree < > > ( );
 
diff --git a/alib2data/src/tree/unranked/Tree.cpp b/alib2data/src/tree/unranked/Tree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b630e664e31150ace9f7ae65ee95a87e6fd14be7
--- /dev/null
+++ b/alib2data/src/tree/unranked/Tree.cpp
@@ -0,0 +1,4 @@
+#include "PrefixBarTree.cxx"
+#include "UnrankedNonlinearPattern.cxx"
+#include "UnrankedPattern.cxx"
+#include "UnrankedTree.cxx"
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cxx
similarity index 60%
rename from alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
rename to alib2data/src/tree/unranked/UnrankedNonlinearPattern.cxx
index 374831140f37d09e716029bdf77f0b56e0f91403..a6cd024a943c9341a55ec8c08b2822747abaec4a 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cxx
@@ -15,8 +15,8 @@ template class tree::UnrankedNonlinearPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::UnrankedNonlinearPattern < > > ( );
+auto componentsUnrankedNonlinearPattern = registration::ComponentRegister < tree::UnrankedNonlinearPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::UnrankedNonlinearPattern < > > ( );
+auto valuePrinterUnrankedNonlinearPattern = registration::ValuePrinterRegister < tree::UnrankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cxx
similarity index 69%
rename from alib2data/src/tree/unranked/UnrankedPattern.cpp
rename to alib2data/src/tree/unranked/UnrankedPattern.cxx
index 7865301138a0ceb067e5ebaaf27a693a2e7ed5cd..34204fa2d6fc0921431ee4ffc0e9063c7f4f931d 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedPattern.cxx
@@ -15,9 +15,9 @@ template class tree::UnrankedPattern < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::UnrankedPattern < > > ( );
+auto componentsUnrankedPattern = registration::ComponentRegister < tree::UnrankedPattern < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::UnrankedPattern < > > ( );
+auto valuePrinterUnrankedPattern = registration::ValuePrinterRegister < tree::UnrankedPattern < > > ( );
 
 auto UnrankedPatternFromRankedPattern = registration::CastRegister < tree::UnrankedPattern < >, tree::RankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cxx
similarity index 70%
rename from alib2data/src/tree/unranked/UnrankedTree.cpp
rename to alib2data/src/tree/unranked/UnrankedTree.cxx
index 8557ab75c4df966cfa0d63fd81821ada108a061e..1b71500e4aec1c31ea91f02fc8a6000b5f92c031 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.cpp
+++ b/alib2data/src/tree/unranked/UnrankedTree.cxx
@@ -15,9 +15,9 @@ template class tree::UnrankedTree < >;
 
 namespace {
 
-auto components = registration::ComponentRegister < tree::UnrankedTree < > > ( );
+auto componentsUnrankedTree = registration::ComponentRegister < tree::UnrankedTree < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < tree::UnrankedTree < > > ( );
+auto valuePrinterUnrankedTree = registration::ValuePrinterRegister < tree::UnrankedTree < > > ( );
 
 auto UnrankedTreeFromRankedTree = registration::CastRegister < tree::UnrankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/xml/ranked/LinearizedTree.cpp b/alib2data/src/tree/xml/ranked/LinearizedTree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7d3df943c41eb057b431765dcf29df945c10e9cb
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/LinearizedTree.cpp
@@ -0,0 +1,7 @@
+#include "PostfixRankedTree.cxx"
+#include "PrefixRankedBarNonlinearPattern.cxx"
+#include "PrefixRankedBarPattern.cxx"
+#include "PrefixRankedBarTree.cxx"
+#include "PrefixRankedNonlinearPattern.cxx"
+#include "PrefixRankedPattern.cxx"
+#include "PrefixRankedTree.cxx"
diff --git a/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp
deleted file mode 100644
index e16157bdcb9cebf201297c3c0749075f66a9fb22..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PostfixRankedTree.cpp
- *
- *  Created on: May 4, 2017
- *      Author: Aleksandr Shatrovskii
- */
-
-#include "PostfixRankedTree.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PostfixRankedTree < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PostfixRankedTree < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PostfixRankedTree < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PostfixRankedTree.cxx b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..ae233a463ca695df8e6deffeecfad7280a8772bb
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cxx
@@ -0,0 +1,20 @@
+/*
+ * PostfixRankedTree.cpp
+ *
+ *  Created on: May 4, 2017
+ *      Author: Aleksandr Shatrovskii
+ */
+
+#include "PostfixRankedTree.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePostfixRankedTree = registration::XmlWriterRegister < tree::PostfixRankedTree < > > ( );
+auto xmlReadPostfixRankedTree = registration::XmlReaderRegister < tree::PostfixRankedTree < > > ( );
+
+auto xmlGroupPostfixRankedTree = 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
deleted file mode 100644
index c805e4cb69bb1c1d72f48670c7586fe7451f3e88..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixRankedBarNonlinearPattern.cpp
- *
- *  Created on: Jul 20, 2016
- *      Author: Jan Travnicek
- */
-
-#include "PrefixRankedBarNonlinearPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cxx b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..4576c9bac442c6aefee67c248fa6f7e3d4bf018c
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixRankedBarNonlinearPattern.cpp
+ *
+ *  Created on: Jul 20, 2016
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixRankedBarNonlinearPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixRankedBarNonlinearPattern = registration::XmlWriterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
+auto xmlReadPrefixRankedBarNonlinearPattern = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
+
+auto xmlGroupPrefixRankedBarNonlinearPattern = 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
deleted file mode 100644
index c9bf90dfad28f2e4423e20f25253cf15ce22e7b1..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixRankedBarPattern.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "PrefixRankedBarPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cxx b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..287d8cb16476d127bc16a561eeeba7a0cf4c68b2
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixRankedBarPattern.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixRankedBarPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixRankedBarPattern = registration::XmlWriterRegister < tree::PrefixRankedBarPattern < > > ( );
+auto xmlReadPrefixRankedBarPattern = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( );
+
+auto xmlGroupPrefixRankedBarPattern = 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
deleted file mode 100644
index b2020d2fdb6cdc5925257169af374c442e9f950b..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixRankedBarTree.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "PrefixRankedBarTree.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarTree < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarTree < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cxx b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..43a7e5f38f57603b12097efb62e11996dfd93b99
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixRankedBarTree.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixRankedBarTree.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixRankedBarTree = registration::XmlWriterRegister < tree::PrefixRankedBarTree < > > ( );
+auto xmlReadPrefixRankedBarTree = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( );
+
+auto xmlGroupPrefixRankedBarTree = 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
deleted file mode 100644
index a425cac240522a8ae2a64d9ed3bfa7c048fed5b1..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixRankedNonlinearPattern.cpp
- *
- *  Created on: Jul 20, 2016
- *      Author: Jan Travnicek
- */
-
-#include "PrefixRankedNonlinearPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedNonlinearPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedNonlinearPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cxx b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..8895472800cdecc4100868a07985eacde3b10e0c
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixRankedNonlinearPattern.cpp
+ *
+ *  Created on: Jul 20, 2016
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixRankedNonlinearPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixRankedNonlinearPattern = registration::XmlWriterRegister < tree::PrefixRankedNonlinearPattern < > > ( );
+auto xmlReadPrefixRankedNonlinearPattern = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( );
+
+auto xmlGroupPrefixRankedNonlinearPattern = 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
deleted file mode 100644
index f09e074a0449d6521850e0d077f3f4e65b1b3296..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixRankedPattern.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "PrefixRankedPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cxx b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..246dd9c94e4f3a55c04e09b2c5d5635d3fac5c1a
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixRankedPattern.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixRankedPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixRankedPattern = registration::XmlWriterRegister < tree::PrefixRankedPattern < > > ( );
+auto xmlReadPrefixRankedPattern = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( );
+
+auto xmlGroupPrefixRankedPattern = 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
deleted file mode 100644
index 5c89c3dfe665ba3b1301ce0d035af63030aecba9..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixRankedTree.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "PrefixRankedTree.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedTree < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedTree < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedTree < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedTree.cxx b/alib2data/src/tree/xml/ranked/PrefixRankedTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..69179ace7f7ba021cd20f498e4ceff6a086d574e
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/PrefixRankedTree.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixRankedTree.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixRankedTree.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixRankedTree = registration::XmlWriterRegister < tree::PrefixRankedTree < > > ( );
+auto xmlReadPrefixRankedTree = registration::XmlReaderRegister < tree::PrefixRankedTree < > > ( );
+
+auto xmlGroupPrefixRankedTree = 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
deleted file mode 100644
index d46aceaee0a7c7ce8334e1d0c61f0bf174a91570..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * RankedNonlinearPattern.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "RankedNonlinearPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::RankedNonlinearPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedNonlinearPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cxx b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..1172233b70ef9eb245cdcd507a1e1d6cc67a3cdd
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * RankedNonlinearPattern.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "RankedNonlinearPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteRankedNonlinearPattern = registration::XmlWriterRegister < tree::RankedNonlinearPattern < > > ( );
+auto xmlReadRankedNonlinearPattern = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( );
+
+auto xmlGroupRankedNonlinearPattern = 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
deleted file mode 100644
index dcfe3227a866146393d87406159d9a09747480bf..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/RankedPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * RankedPattern.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "RankedPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::RankedPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::RankedPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/RankedPattern.cxx b/alib2data/src/tree/xml/ranked/RankedPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..8d164b594f9b7eb62b1e04fc898614659229d4d0
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/RankedPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * RankedPattern.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "RankedPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteRankedPattern = registration::XmlWriterRegister < tree::RankedPattern < > > ( );
+auto xmlReadRankedPattern = registration::XmlReaderRegister < tree::RankedPattern < > > ( );
+
+auto xmlGroupRankedPattern = 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
deleted file mode 100644
index a0d8c3dd98c85d4195d5e7cc1f0440b2e83205e6..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/ranked/RankedTree.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * RankedTree.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Stepan Plachy
- */
-
-#include "RankedTree.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::RankedTree < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::RankedTree < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedTree < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/RankedTree.cxx b/alib2data/src/tree/xml/ranked/RankedTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..1b09662e3960c64f4c7b68977581028db178c950
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/RankedTree.cxx
@@ -0,0 +1,20 @@
+/*
+ * RankedTree.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Stepan Plachy
+ */
+
+#include "RankedTree.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteRankedTree = registration::XmlWriterRegister < tree::RankedTree < > > ( );
+auto xmlReadRankedTree = registration::XmlReaderRegister < tree::RankedTree < > > ( );
+
+auto xmlGroupRankedTree = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedTree < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/tree/xml/ranked/Tree.cpp b/alib2data/src/tree/xml/ranked/Tree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..89e98d49f7c70c4443ea803038b9a3a10b01eebb
--- /dev/null
+++ b/alib2data/src/tree/xml/ranked/Tree.cpp
@@ -0,0 +1,3 @@
+#include "RankedNonlinearPattern.cxx"
+#include "RankedPattern.cxx"
+#include "RankedTree.cxx"
diff --git a/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp b/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp
deleted file mode 100644
index b5da685336908a5a638d49dfdd4b83c304660f99..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * PrefixBarTree.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "PrefixBarTree.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::PrefixBarTree < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::PrefixBarTree < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixBarTree < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/PrefixBarTree.cxx b/alib2data/src/tree/xml/unranked/PrefixBarTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d7dbedb1bbd4d598b597d28ed4e5fde559007363
--- /dev/null
+++ b/alib2data/src/tree/xml/unranked/PrefixBarTree.cxx
@@ -0,0 +1,20 @@
+/*
+ * PrefixBarTree.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "PrefixBarTree.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWritePrefixBarTree = registration::XmlWriterRegister < tree::PrefixBarTree < > > ( );
+auto xmlReadPrefixBarTree = registration::XmlReaderRegister < tree::PrefixBarTree < > > ( );
+
+auto xmlGroupPrefixBarTree = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixBarTree < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/Tree.cpp b/alib2data/src/tree/xml/unranked/Tree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b630e664e31150ace9f7ae65ee95a87e6fd14be7
--- /dev/null
+++ b/alib2data/src/tree/xml/unranked/Tree.cpp
@@ -0,0 +1,4 @@
+#include "PrefixBarTree.cxx"
+#include "UnrankedNonlinearPattern.cxx"
+#include "UnrankedPattern.cxx"
+#include "UnrankedTree.cxx"
diff --git a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp
deleted file mode 100644
index e91dd16cfd55294ce8e192b62af18c89e2cc1d42..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * UnrankedNonlinearPattern.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "UnrankedNonlinearPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedNonlinearPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedNonlinearPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cxx b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..2cd56789412e32df1e0fe0325164ab35e31a30db
--- /dev/null
+++ b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * UnrankedNonlinearPattern.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "UnrankedNonlinearPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteUnrankedNonlinearPattern = registration::XmlWriterRegister < tree::UnrankedNonlinearPattern < > > ( );
+auto xmlReadUnrankedNonlinearPattern = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( );
+
+auto xmlGroupUnrankedNonlinearPattern = 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
deleted file mode 100644
index 9b0e00bbca9e3b5c22ef7e6d6ea321971ac6ab31..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * UnrankedPattern.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Jan Travnicek
- */
-
-#include "UnrankedPattern.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedPattern < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::UnrankedPattern < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedPattern < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/UnrankedPattern.cxx b/alib2data/src/tree/xml/unranked/UnrankedPattern.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..9752685f264b84c06ff749ab0fa7c91f54f732a5
--- /dev/null
+++ b/alib2data/src/tree/xml/unranked/UnrankedPattern.cxx
@@ -0,0 +1,20 @@
+/*
+ * UnrankedPattern.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "UnrankedPattern.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteUnrankedPattern = registration::XmlWriterRegister < tree::UnrankedPattern < > > ( );
+auto xmlReadUnrankedPattern = registration::XmlReaderRegister < tree::UnrankedPattern < > > ( );
+
+auto xmlGroupUnrankedPattern = 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
deleted file mode 100644
index 996d57ea4f091ffc9dc484702c8890014c1775fe..0000000000000000000000000000000000000000
--- a/alib2data/src/tree/xml/unranked/UnrankedTree.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * UnrankedTree.cpp
- *
- *  Created on: Nov 23, 2013
- *      Author: Stepan Plachy
- */
-
-#include "UnrankedTree.h"
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedTree < > > ( );
-auto xmlRead = registration::XmlReaderRegister < tree::UnrankedTree < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedTree < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/tree/xml/unranked/UnrankedTree.cxx b/alib2data/src/tree/xml/unranked/UnrankedTree.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..87a7f6c7491bb582e55257b65692c1ab5e0c44c4
--- /dev/null
+++ b/alib2data/src/tree/xml/unranked/UnrankedTree.cxx
@@ -0,0 +1,20 @@
+/*
+ * UnrankedTree.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Stepan Plachy
+ */
+
+#include "UnrankedTree.h"
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteUnrankedTree = registration::XmlWriterRegister < tree::UnrankedTree < > > ( );
+auto xmlReadUnrankedTree = registration::XmlReaderRegister < tree::UnrankedTree < > > ( );
+
+auto xmlGroupUnrankedTree = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedTree < > > ( );
+
+} /* namespace */