diff --git a/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.h b/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.h
index 290c38efdec7c0b354752749149e6759aacbb416..16c1e484ffc2f7c2abd52556cad9f7db368171d6 100644
--- a/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.h
+++ b/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.h
@@ -89,7 +89,7 @@ void ExactNonlinearTreePatternAutomaton::constructTail ( automaton::InputDrivenN
 
 template < class SymbolType, class RankType >
 automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, ext::pair < unsigned, unsigned > > ExactNonlinearTreePatternAutomaton::constructInternal ( const tree::PrefixRankedTree < SymbolType, RankType > & tree, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const common::ranked_symbol < SymbolType, RankType > & currentNonlinearVariable, const ext::set < common::ranked_symbol < SymbolType, RankType > > & nonlinearVariables ) {
-	char S = alphabet::SubtreeWildcardSymbol::instance < char > ( );
+	char S = alphabet::WildcardSymbol::instance < char > ( );
 	automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, ext::pair < unsigned, unsigned > > res ( ext::make_pair ( 0u, 0u ), S );
 
 	tree::PrefixRankedTree < unsigned, RankType > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( tree );
@@ -206,7 +206,7 @@ void ExactNonlinearTreePatternAutomaton::constructTail ( automaton::InputDrivenN
 
 template < class SymbolType, class RankType >
 automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, ext::pair < unsigned, unsigned > > ExactNonlinearTreePatternAutomaton::constructInternal ( const tree::PrefixRankedBarTree < SymbolType, RankType > & tree, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const common::ranked_symbol < SymbolType, RankType > & currentNonlinearVariable, const ext::set < common::ranked_symbol < SymbolType, RankType > > & nonlinearVariables, const common::ranked_symbol < SymbolType, RankType > & variablesBar ) {
-	char S = alphabet::SubtreeWildcardSymbol::instance < char > ( );
+	char S = alphabet::WildcardSymbol::instance < char > ( );
 	automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, ext::pair < unsigned, unsigned > > res ( ext::make_pair ( 0u, 0u ), S );
 
 	tree::PrefixRankedBarTree < unsigned, RankType > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( tree );
diff --git a/alib2algo/src/arbology/exact/ExactTreePatternAutomaton.h b/alib2algo/src/arbology/exact/ExactTreePatternAutomaton.h
index 4285ab7357f8bc3f296a342c42abd1d9ad810a0d..7753c44ea86c635f2a2c1f174b631c785d865637 100644
--- a/alib2algo/src/arbology/exact/ExactTreePatternAutomaton.h
+++ b/alib2algo/src/arbology/exact/ExactTreePatternAutomaton.h
@@ -8,7 +8,7 @@
 #ifndef _EXACT_TREE_PATTERN_AUTOMATON_H__
 #define _EXACT_TREE_PATTERN_AUTOMATON_H__
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 
 #include <tree/ranked/PrefixRankedTree.h>
 #include <tree/ranked/PrefixRankedBarTree.h>
@@ -40,7 +40,7 @@ public:
 
 template < class SymbolType, class RankType >
 automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, unsigned > ExactTreePatternAutomaton::construct ( const tree::PrefixRankedBarTree < SymbolType, RankType > & tree, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const common::ranked_symbol < SymbolType, RankType > & variablesBar ) {
-	char S = alphabet::SubtreeWildcardSymbol::instance < char > ( );
+	char S = alphabet::WildcardSymbol::instance < char > ( );
 	automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, unsigned > res ( 0, S );
 
 	for ( const common::ranked_symbol < SymbolType, RankType > & symbol : tree.getAlphabet ( ) ) {
@@ -85,7 +85,7 @@ automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, cha
 
 template < class SymbolType, class RankType >
 automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, unsigned > ExactTreePatternAutomaton::construct ( const tree::PrefixRankedTree < SymbolType, RankType > & tree, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard ) {
-	char S = alphabet::SubtreeWildcardSymbol::instance < char > ( );
+	char S = alphabet::WildcardSymbol::instance < char > ( );
 	automaton::InputDrivenNPDA < common::ranked_symbol < SymbolType, RankType >, char, unsigned > res ( 0, S );
 
 	for ( const common::ranked_symbol < SymbolType, RankType > & symbol : tree.getAlphabet ( ) ) {
diff --git a/alib2algo/src/tree/generate/RandomTreeFactory.cpp b/alib2algo/src/tree/generate/RandomTreeFactory.cpp
index 4253133530efdf6a6b8e4f6cc6fa5fe7ca5d63ab..4501479837ea21adac79fe4421b6b1a6d81068b4 100644
--- a/alib2algo/src/tree/generate/RandomTreeFactory.cpp
+++ b/alib2algo/src/tree/generate/RandomTreeFactory.cpp
@@ -20,7 +20,7 @@
 #include <alib/iostream>
 #include <alib/random>
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 #include <alphabet/NonlinearVariableSymbol.h>
 #include <exception/CommonException.h>
 
@@ -122,7 +122,7 @@ struct Node {
 
 	ext::tree < DefaultSymbolType > createUnrankedPatternNode ( ) {
 		if ( rank == 0 ) {
-			return ext::tree < DefaultSymbolType > ( alphabet::SubtreeWildcardSymbol::instance < DefaultSymbolType > ( ), { } );
+			return ext::tree < DefaultSymbolType > ( alphabet::WildcardSymbol::instance < DefaultSymbolType > ( ), { } );
 		} else {
 			ext::vector < ext::tree < DefaultSymbolType > > children;
 			Node * nextChild = child;
@@ -150,7 +150,7 @@ struct Node {
 
 	ext::tree < common::ranked_symbol < > > createRankedPatternNode ( ) {
 		if ( rank == 0 ) {
-			return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( alphabet::SubtreeWildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ), { } );
+			return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( alphabet::WildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ), { } );
 		} else {
 			ext::vector < ext::tree < common::ranked_symbol < > > > children;
 			Node * nextChild = child;
@@ -314,7 +314,7 @@ UnrankedPattern < > RandomUnrankedPatternFactory::generateUnrankedPattern ( int
 	for ( ext::vector < char >::const_iterator it = alphabet.begin ( ); it != alphabet.end ( ); ++it )
 		treeAlphabet.insert ( DefaultSymbolType ( * it ) );
 
-	DefaultSymbolType subtreeWildcard = alphabet::SubtreeWildcardSymbol::instance < DefaultSymbolType > ( );
+	DefaultSymbolType subtreeWildcard = alphabet::WildcardSymbol::instance < DefaultSymbolType > ( );
 	treeAlphabet.insert ( subtreeWildcard );
 	UnrankedPattern < > tree ( std::move ( subtreeWildcard ), treeAlphabet, root->createUnrankedPatternNode ( ) );
 	delete root;
@@ -358,7 +358,7 @@ RankedPattern < > RandomRankedPatternFactory::generateRankedPattern ( int depth,
 		for ( char i : it.second )
 			treeRankedAlphabet.insert ( common::ranked_symbol < > ( DefaultSymbolType ( i ), DefaultRankType ( it.first ) ) );
 
-	common::ranked_symbol < > subtreeWildcard = alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( );
+	common::ranked_symbol < > subtreeWildcard = alphabet::WildcardSymbol::instance < common::ranked_symbol < > > ( );
 	treeRankedAlphabet.insert ( subtreeWildcard );
 	RankedPattern < > tree ( std::move ( subtreeWildcard ), treeRankedAlphabet, root->createRankedPatternNode ( ) );
 	delete root;
@@ -388,7 +388,7 @@ RankedNonlinearPattern < > RandomRankedNonlinearPatternFactory::generateRankedNo
 		for ( char i : rankedAlphabet [ 0 ] )
 			nonlinearVariables.insert ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( DefaultSymbolType ( i ) ) ), DefaultRankType ( 0 ) ) );
 
-	common::ranked_symbol < > subtreeWildcard = alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( );
+	common::ranked_symbol < > subtreeWildcard = alphabet::WildcardSymbol::instance < common::ranked_symbol < > > ( );
 	treeRankedAlphabet.insert ( subtreeWildcard );
 	treeRankedAlphabet.insert ( nonlinearVariables.begin ( ), nonlinearVariables.end ( ) );
 	RankedNonlinearPattern < > tree ( std::move ( subtreeWildcard ), nonlinearVariables, treeRankedAlphabet, root->createRankedNonlinearPatternNode ( singleNonlinearVariable ) );
diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp b/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
deleted file mode 100644
index 71acf295d6761515e0cbde5cd4a4171f9bc46645..0000000000000000000000000000000000000000
--- a/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * SubtreeWildcardSymbol.cpp
- *
- *  Created on: Apr 10, 2013
- *      Author: Jan Travnicek
- */
-
-#include "SubtreeWildcardSymbol.h"
-#include "Symbol.h"
-#include <object/Object.h>
-#include "UniqueSymbol.h"
-
-#include <registration/ValuePrinterRegistration.hpp>
-
-namespace alphabet {
-
-SubtreeWildcardSymbol::SubtreeWildcardSymbol() {
-
-}
-
-SymbolBase* SubtreeWildcardSymbol::clone ( ) const & {
-	return new SubtreeWildcardSymbol(*this);
-}
-
-SymbolBase* SubtreeWildcardSymbol::clone() && {
-	return new SubtreeWildcardSymbol(std::move(*this));
-}
-
-int SubtreeWildcardSymbol::compare(const SubtreeWildcardSymbol&) const {
-	return 0;
-}
-
-void SubtreeWildcardSymbol::operator>>(std::ostream& out) const {
-	out << "(SubtreeWildcardSymbol)";
-}
-
-SubtreeWildcardSymbol::operator std::string () const {
-	return SubtreeWildcardSymbol::instance < std::string > ( );
-}
-
-SymbolBase* SubtreeWildcardSymbol::inc() && {
-	return new UniqueSymbol(Symbol(std::move(*this)), primitive::Integer(0));
-}
-
-} /* namespace alphabet */
-
-namespace {
-
-static auto valuePrinter = registration::ValuePrinterRegister < alphabet::SubtreeWildcardSymbol > ( );
-
-} /* namespace */
diff --git a/alib2data/src/alphabet/SymbolClasses.h b/alib2data/src/alphabet/SymbolClasses.h
index 8d33b65075c5ecfcd4ab26af0a0b8e33d6695a80..2b256ec433e95758f1cc6254497f272f86d77712 100644
--- a/alib2data/src/alphabet/SymbolClasses.h
+++ b/alib2data/src/alphabet/SymbolClasses.h
@@ -16,7 +16,7 @@
 #include "RankedSymbol.h"
 #include "BarSymbol.h"
 #include "VariablesBarSymbol.h"
-#include "SubtreeWildcardSymbol.h"
+#include "WildcardSymbol.h"
 #include "SymbolPairSymbol.h"
 #include "SymbolSetSymbol.h"
 #include "UniqueSymbol.h"
diff --git a/alib2data/src/alphabet/SymbolFeatures.h b/alib2data/src/alphabet/SymbolFeatures.h
index a1b0baefcb9728e353596ef852fa23a6dc134395..4f7ff75b0d6f545f9b344dd3d8f139e2586e5546 100644
--- a/alib2data/src/alphabet/SymbolFeatures.h
+++ b/alib2data/src/alphabet/SymbolFeatures.h
@@ -38,7 +38,7 @@ template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankTyp
 class RankedSymbol;
 class BarSymbol;
 class VariablesBarSymbol;
-class SubtreeWildcardSymbol;
+class WildcardSymbol;
 template < class SymbolType = DefaultSymbolType >
 class NonlinearVariableSymbol;
 class UniqueSymbol;
diff --git a/alib2data/src/alphabet/WildcardSymbol.cpp b/alib2data/src/alphabet/WildcardSymbol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e48f88b089260a64d07bb693cf451c97bf5026fa
--- /dev/null
+++ b/alib2data/src/alphabet/WildcardSymbol.cpp
@@ -0,0 +1,51 @@
+/*
+ * WildcardSymbol.cpp
+ *
+ *  Created on: Apr 10, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "WildcardSymbol.h"
+#include "Symbol.h"
+#include <object/Object.h>
+#include "UniqueSymbol.h"
+
+#include <registration/ValuePrinterRegistration.hpp>
+
+namespace alphabet {
+
+WildcardSymbol::WildcardSymbol() {
+
+}
+
+SymbolBase* WildcardSymbol::clone() const & {
+	return new WildcardSymbol(*this);
+}
+
+SymbolBase* WildcardSymbol::clone() && {
+	return new WildcardSymbol(std::move(*this));
+}
+
+int WildcardSymbol::compare(const WildcardSymbol&) const {
+	return 0;
+}
+
+void WildcardSymbol::operator>>(std::ostream& out) const {
+	out << "(WildcardSymbol)";
+}
+
+WildcardSymbol::operator std::string () const {
+	return WildcardSymbol::instance < std::string > ( );
+}
+
+SymbolBase* WildcardSymbol::inc() && {
+	return new UniqueSymbol(Symbol(std::move(*this)), primitive::Integer(0));
+}
+
+} /* namespace alphabet */
+
+namespace {
+
+static auto valuePrinter = registration::ValuePrinterRegister < alphabet::WildcardSymbol > ( );
+
+} /* namespace */
diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/WildcardSymbol.h
similarity index 57%
rename from alib2data/src/alphabet/SubtreeWildcardSymbol.h
rename to alib2data/src/alphabet/WildcardSymbol.h
index ecd47bd2e10775db29d4abbbe2cee03553434341..fd5f66ecdd4584eee873d7d54b109185d277b6bd 100644
--- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h
+++ b/alib2data/src/alphabet/WildcardSymbol.h
@@ -1,5 +1,5 @@
 /*
- * SubtreeWildcardSymbol.h
+ * WildcardSymbol.h
  *
  *  Created on: Apr 10, 2013
  *      Author: Jan Travnicek
@@ -18,13 +18,13 @@ namespace alphabet {
 /**
  * Represents subtreeWildcard symbol for tree linearization.
  */
-class SubtreeWildcardSymbol : public SymbolBase {
+class WildcardSymbol : public SymbolBase {
 public:
 	/**
 	 * Creates a subtreeWildcard symbol.
 	 * @param symbol name of the symbol
 	 */
-	explicit SubtreeWildcardSymbol ( );
+	explicit WildcardSymbol ( );
 
 	virtual SymbolBase * clone ( ) const &;
 	virtual SymbolBase * clone ( ) &&;
@@ -35,7 +35,7 @@ public:
 		return ext::type_index ( typeid ( * this ) ) - ext::type_index ( typeid ( other ) );
 	}
 
-	virtual int compare ( const SubtreeWildcardSymbol & other ) const;
+	virtual int compare ( const WildcardSymbol & other ) const;
 
 	virtual void operator >>( std::ostream & out ) const;
 
@@ -50,39 +50,39 @@ public:
 };
 
 template < typename Base >
-inline typename std::enable_if < std::is_integral < Base >::value, Base >::type SubtreeWildcardSymbol::instance ( ) {
-	return 'S';
+inline typename std::enable_if < std::is_integral < Base >::value, Base >::type WildcardSymbol::instance ( ) {
+	return '*';
 }
 
 template < >
-inline object::Object SubtreeWildcardSymbol::instance < object::Object > ( ) {
-	return object::Object ( SubtreeWildcardSymbol ( ) );
+inline object::Object WildcardSymbol::instance < object::Object > ( ) {
+	return object::Object ( WildcardSymbol ( ) );
 }
 
 template < >
-inline std::string SubtreeWildcardSymbol::instance < std::string > ( ) {
-	return std::string ( 1, SubtreeWildcardSymbol::instance < char > ( ) );
+inline std::string WildcardSymbol::instance < std::string > ( ) {
+	return std::string ( 1, WildcardSymbol::instance < char > ( ) );
 }
 
 template < >
-inline SubtreeWildcardSymbol SubtreeWildcardSymbol::instance < SubtreeWildcardSymbol > ( ) {
-	return SubtreeWildcardSymbol ( );
+inline WildcardSymbol WildcardSymbol::instance < WildcardSymbol > ( ) {
+	return WildcardSymbol ( );
 }
 
 template < >
-inline Symbol SubtreeWildcardSymbol::instance < Symbol > ( ) {
-	return Symbol ( SubtreeWildcardSymbol ( ) );
+inline Symbol WildcardSymbol::instance < Symbol > ( ) {
+	return Symbol ( WildcardSymbol ( ) );
 }
 
 // TODO make partially specialised when needed by classes or variables, functions can't be partially specialsed
 template < >
-inline common::ranked_symbol < > SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ) {
-	return common::ranked_symbol < > ( SubtreeWildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
+inline common::ranked_symbol < > WildcardSymbol::instance < common::ranked_symbol < > > ( ) {
+	return common::ranked_symbol < > ( WildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) );
 }
 
 template < >
-inline RankedSymbol < > SubtreeWildcardSymbol::instance < RankedSymbol < > > ( ) {
-	return RankedSymbol < > ( SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ) );
+inline RankedSymbol < > WildcardSymbol::instance < RankedSymbol < > > ( ) {
+	return RankedSymbol < > ( WildcardSymbol::instance < common::ranked_symbol < > > ( ) );
 }
 
 } /* namespace alphabet */
diff --git a/alib2data/src/alphabet/xml/SubtreeWildcardSymbol.cpp b/alib2data/src/alphabet/xml/WildcardSymbol.cpp
similarity index 55%
rename from alib2data/src/alphabet/xml/SubtreeWildcardSymbol.cpp
rename to alib2data/src/alphabet/xml/WildcardSymbol.cpp
index 8587258dc0211d0882b03e3d0934b644eeb060cb..bb3b1255028310923cb32d46c16b8bbab36a12f5 100644
--- a/alib2data/src/alphabet/xml/SubtreeWildcardSymbol.cpp
+++ b/alib2data/src/alphabet/xml/WildcardSymbol.cpp
@@ -1,11 +1,11 @@
 /*
- * SubtreeWildcardSymbol.cpp
+ * WildcardSymbol.cpp
  *
  *  Created on: Apr 10, 2013
  *      Author: Jan Travnicek
  */
 
-#include "SubtreeWildcardSymbol.h"
+#include "WildcardSymbol.h"
 #include <alphabet/Symbol.h>
 #include <object/Object.h>
 
@@ -13,23 +13,23 @@
 
 namespace core {
 
-alphabet::SubtreeWildcardSymbol xmlApi < alphabet::SubtreeWildcardSymbol >::parse ( ext::deque < sax::Token >::iterator & input ) {
+alphabet::WildcardSymbol xmlApi < alphabet::WildcardSymbol >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) );
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) );
-	return alphabet::SubtreeWildcardSymbol ( );
+	return alphabet::WildcardSymbol ( );
 }
 
-bool xmlApi < alphabet::SubtreeWildcardSymbol >::first ( const ext::deque < sax::Token >::const_iterator & input ) {
+bool xmlApi < alphabet::WildcardSymbol >::first ( const ext::deque < sax::Token >::const_iterator & input ) {
 	return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) );
 }
 
-const std::string & xmlApi < alphabet::SubtreeWildcardSymbol >::xmlTagName ( ) {
-	static std::string xmlTagName = "SubtreeWildcardSymbol";
+const std::string & xmlApi < alphabet::WildcardSymbol >::xmlTagName ( ) {
+	static std::string xmlTagName = "WildcardSymbol";
 
 	return xmlTagName;
 }
 
-void xmlApi < alphabet::SubtreeWildcardSymbol >::compose ( ext::deque < sax::Token > & output, const alphabet::SubtreeWildcardSymbol & ) {
+void xmlApi < alphabet::WildcardSymbol >::compose ( ext::deque < sax::Token > & output, const alphabet::WildcardSymbol & ) {
 	output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT );
 	output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT );
 }
@@ -38,10 +38,10 @@ void xmlApi < alphabet::SubtreeWildcardSymbol >::compose ( ext::deque < sax::Tok
 
 namespace {
 
-static auto xmlWrite = registration::XmlWriterRegister < alphabet::SubtreeWildcardSymbol > ( );
-static auto xmlRead = registration::XmlReaderRegister < alphabet::SubtreeWildcardSymbol > ( );
+static auto xmlWrite = registration::XmlWriterRegister < alphabet::WildcardSymbol > ( );
+static auto xmlRead = registration::XmlReaderRegister < alphabet::WildcardSymbol > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::SubtreeWildcardSymbol > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::SubtreeWildcardSymbol > ( );
+static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::WildcardSymbol > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, alphabet::WildcardSymbol > ( );
 
 } /* namespace */
diff --git a/alib2data/src/alphabet/xml/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/xml/WildcardSymbol.h
similarity index 64%
rename from alib2data/src/alphabet/xml/SubtreeWildcardSymbol.h
rename to alib2data/src/alphabet/xml/WildcardSymbol.h
index 53ae39b908f11df476e6434a37c73cd9830d5f62..a75f0d50081e4a8f24da609add2581d30ba317d4 100644
--- a/alib2data/src/alphabet/xml/SubtreeWildcardSymbol.h
+++ b/alib2data/src/alphabet/xml/WildcardSymbol.h
@@ -1,5 +1,5 @@
 /*
- * SubtreeWildcardSymbol.h
+ * WildcardSymbol.h
  *
  *  Created on: Apr 10, 2013
  *      Author: Jan Travnicek
@@ -8,17 +8,17 @@
 #ifndef _XML_SUBTREE_WILDCARD_SYMBOL_H_
 #define _XML_SUBTREE_WILDCARD_SYMBOL_H_
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 #include <core/xmlApi.hpp>
 
 namespace core {
 
 template < >
-struct xmlApi < alphabet::SubtreeWildcardSymbol > {
-	static alphabet::SubtreeWildcardSymbol parse ( ext::deque < sax::Token >::iterator & input );
+struct xmlApi < alphabet::WildcardSymbol > {
+	static alphabet::WildcardSymbol parse ( ext::deque < sax::Token >::iterator & input );
 	static bool first ( const ext::deque < sax::Token >::const_iterator & input );
 	static const std::string & xmlTagName ( );
-	static void compose ( ext::deque < sax::Token > & output, const alphabet::SubtreeWildcardSymbol & data );
+	static void compose ( ext::deque < sax::Token > & output, const alphabet::WildcardSymbol & data );
 };
 
 } /* namespace core */
diff --git a/alib2data/src/tree/common/TreeFromXMLParser.h b/alib2data/src/tree/common/TreeFromXMLParser.h
index b7e90fab0dbfda4dace09ddf64abe773054af807..608e550a5b367611b355374afea0130de766c595 100644
--- a/alib2data/src/tree/common/TreeFromXMLParser.h
+++ b/alib2data/src/tree/common/TreeFromXMLParser.h
@@ -43,7 +43,7 @@ public:
 	static SymbolType parseVariablesBar ( ext::deque < sax::Token >::iterator & input );
 
 	template < class SymbolType >
-	static SymbolType parseSubtreeWildcardSymbol ( ext::deque < sax::Token >::iterator & input );
+	static SymbolType parseWildcardSymbol ( ext::deque < sax::Token >::iterator & input );
 
 	template < class SymbolType >
 	static ext::set < SymbolType > parseNonlinearVariables ( ext::deque < sax::Token >::iterator & input );
@@ -81,7 +81,7 @@ SymbolType TreeFromXMLParser::parseVariablesBar ( ext::deque < sax::Token >::ite
 }
 
 template < class SymbolType >
-SymbolType TreeFromXMLParser::parseSubtreeWildcardSymbol ( ext::deque < sax::Token >::iterator & input ) {
+SymbolType TreeFromXMLParser::parseWildcardSymbol ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "subtreeWildcard" );
 	SymbolType subtreeWildcard ( core::xmlApi < SymbolType >::parse ( input ) );
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "subtreeWildcard" );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
index 6768c945d7df698899a94c0a027d6b884121ffc2..6d72ab8c66b1fdbd301e4858293f7951b07a24f6 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
@@ -47,7 +47,7 @@
 
 #include <alphabet/BarSymbol.h>
 #include <alphabet/VariablesBarSymbol.h>
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 
 #include <core/normalize.hpp>
 
@@ -432,7 +432,7 @@ PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonline
 }
 
 template < class SymbolType, class RankType >
-PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, common::ranked_symbol < SymbolType, RankType > variablesBar, const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { variablesBar, alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, TreeAuxiliary::treeToPrefix ( tree.getContent ( ), alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, barBase, variablesBar ) ) {
+PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, common::ranked_symbol < SymbolType, RankType > variablesBar, const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { variablesBar, alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, TreeAuxiliary::treeToPrefix ( tree.getContent ( ), alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, barBase, variablesBar ) ) {
 }
 
 template < class SymbolType, class RankType >
@@ -444,7 +444,7 @@ PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonline
 }
 
 template < class SymbolType, class RankType >
-PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( tree.getBars ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) {
+PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( tree.getBars ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) {
 }
 
 template < class SymbolType, class RankType >
@@ -569,7 +569,7 @@ PrefixRankedBarNonlinearPattern < SymbolType, RankType > PrefixRankedBarNonlinea
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedBarNonlinearPattern::getXmlTagName ( ) );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > bars = TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input );
 	common::ranked_symbol < SymbolType, RankType > variablesBarSymbol = TreeFromXMLParser::parseVariablesBar < common::ranked_symbol < SymbolType, RankType > > ( input );
-	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
+	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
index 038f9add7958fe98a3db76f82165cb17054a4af2..71985ebf538a7c8d3226484cade268aab02886ba 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
@@ -47,7 +47,7 @@
 
 #include <alphabet/BarSymbol.h>
 #include <alphabet/VariablesBarSymbol.h>
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 
 #include <core/normalize.hpp>
 
@@ -358,7 +358,7 @@ PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( Symbol
 }
 
 template < class SymbolType, class RankType >
-PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ) : PrefixRankedBarPattern ( tree.getBars() + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) {
+PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ) : PrefixRankedBarPattern ( tree.getBars() + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) {
 }
 
 template < class SymbolType, class RankType >
@@ -467,7 +467,7 @@ PrefixRankedBarPattern < SymbolType, RankType > PrefixRankedBarPattern < SymbolT
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedBarPattern::getXmlTagName() );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > bars = TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input );
 	common::ranked_symbol < SymbolType, RankType > variablesBarSymbol = TreeFromXMLParser::parseVariablesBar < common::ranked_symbol < SymbolType, RankType > > ( input );
-	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
+	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input );
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedBarPattern::getXmlTagName() );
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
index 733509e17f38da930ba2ef66fd68c33b52c056eb..6c51a52ba25682da3c1e104386ba6c8b27676d97 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
@@ -45,7 +45,7 @@
 #include "../common/TreeAuxiliary.h"
 #include <tree/common/TreeNormalize.h>
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 
 #include <core/normalize.hpp>
 
@@ -346,7 +346,7 @@ PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPatt
 }
 
 template < class SymbolType, class RankType >
-PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) {
+PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) {
 }
 
 template < class SymbolType, class RankType >
@@ -354,7 +354,7 @@ PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPatt
 }
 
 template < class SymbolType, class RankType >
-PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), TreeAuxiliary::treeToPrefix ( tree.getContent ( ) ) ) {
+PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), TreeAuxiliary::treeToPrefix ( tree.getContent ( ) ) ) {
 }
 
 template < class SymbolType, class RankType >
@@ -451,7 +451,7 @@ PrefixRankedNonlinearPattern < SymbolType, RankType >::operator std::string ( )
 template < class SymbolType, class RankType >
 PrefixRankedNonlinearPattern < SymbolType, RankType > PrefixRankedNonlinearPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedNonlinearPattern::getXmlTagName ( ) );
-	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
+	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input );
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h
index 5837d5b12ca1d044e4b3728ec64e78890686b758..ba69cbd826a81b85a41c8b5fd3204d90743b482f 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h
@@ -45,7 +45,7 @@
 #include "../common/TreeAuxiliary.h"
 #include <tree/common/TreeNormalize.h>
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 
 #include <core/normalize.hpp>
 
@@ -288,7 +288,7 @@ PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( common::rank
 }
 
 template < class SymbolType, class RankType >
-PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ) : PrefixRankedPattern ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) {
+PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ) : PrefixRankedPattern ( alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + ext::set < common::ranked_symbol < SymbolType, RankType > > { alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) {
 }
 
 template < class SymbolType, class RankType >
@@ -381,7 +381,7 @@ PrefixRankedPattern < SymbolType, RankType >::operator std::string ( ) const {
 template < class SymbolType, class RankType >
 PrefixRankedPattern < SymbolType, RankType > PrefixRankedPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedPattern::getXmlTagName() );
-	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
+	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input );
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedPattern::getXmlTagName() );
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
index 5e876de0855679cf4a38da758f83bf77539c7338..5feb57a8488955f9f86944cfa2a70ebd35e870c8 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
@@ -395,7 +395,7 @@ RankedNonlinearPattern < SymbolType, RankType >::operator std::string ( ) const
 template < class SymbolType, class RankType >
 RankedNonlinearPattern < SymbolType, RankType > RankedNonlinearPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, RankedNonlinearPattern::getXmlTagName() );
-	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
+	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > root = TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input );
diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h
index e07942433fded099938cc9a0e71ba166da8921cf..c0e8af38d2337b355d8bb4ac4e26be159d70f8bf 100644
--- a/alib2data/src/tree/ranked/RankedPattern.h
+++ b/alib2data/src/tree/ranked/RankedPattern.h
@@ -361,7 +361,7 @@ RankedPattern < SymbolType, RankType >::operator std::string ( ) const {
 template < class SymbolType, class RankType >
 RankedPattern < SymbolType, RankType > RankedPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, RankedPattern::getXmlTagName() );
-	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
+	common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input );
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > root = TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input );
 	RankedPattern < SymbolType, RankType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( root ) );
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
index 610807f8ed4e860282a4bae2725d69f31d1dd502..5dcfebcd1db5e6f31b13623e60cf93022f072b78 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
@@ -374,7 +374,7 @@ UnrankedNonlinearPattern < SymbolType >::operator std::string ( ) const {
 template < class SymbolType >
 UnrankedNonlinearPattern < SymbolType > UnrankedNonlinearPattern < SymbolType >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, UnrankedNonlinearPattern::getXmlTagName() );
-	SymbolType subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < SymbolType > ( input );
+	SymbolType subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < SymbolType > ( input );
 	ext::set < SymbolType > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < SymbolType > ( input );
 	ext::set < SymbolType > rankedAlphabet = TreeFromXMLParser::parseAlphabet < SymbolType > ( input );
 	ext::tree < SymbolType > root = TreeFromXMLParser::parseTreeContent < SymbolType > ( input );
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h
index f1e85f9ec67f16f5d8f74945809579d543e931a7..bdf6d75acad5e78101764cc7da908ce70dcd89b4 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedPattern.h
@@ -341,7 +341,7 @@ UnrankedPattern < SymbolType >::operator std::string ( ) const {
 template < class SymbolType >
 UnrankedPattern < SymbolType > UnrankedPattern < SymbolType >::parse ( ext::deque < sax::Token >::iterator & input ) {
 	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, UnrankedPattern::getXmlTagName() );
-	SymbolType subtreeWildcardSymbol = TreeFromXMLParser::parseSubtreeWildcardSymbol < SymbolType > ( input );
+	SymbolType subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < SymbolType > ( input );
 	ext::set < SymbolType > rankedAlphabet = TreeFromXMLParser::parseAlphabet < SymbolType > ( input );
 	ext::tree < SymbolType > root = TreeFromXMLParser::parseTreeContent < SymbolType > ( input );
 	UnrankedPattern < SymbolType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( root ) );
diff --git a/alib2data/test-src/tree/PatternTest.cpp b/alib2data/test-src/tree/PatternTest.cpp
index 71b52508884e30d6371306fdf400eca9fee781e3..e800aa0adba001bb06cfed9d0da95d79e13b22de 100644
--- a/alib2data/test-src/tree/PatternTest.cpp
+++ b/alib2data/test-src/tree/PatternTest.cpp
@@ -13,7 +13,7 @@
 #include "factory/XmlDataFactory.hpp"
 
 #include "common/ranked_symbol.hpp"
-#include "alphabet/SubtreeWildcardSymbol.h"
+#include "alphabet/WildcardSymbol.h"
 #include "alphabet/BarSymbol.h"
 #include "alphabet/VariablesBarSymbol.h"
 
@@ -31,7 +31,7 @@ void PatternTest::testRankedPatternParser() {
 	const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1));
 	const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0));
 
-	const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0));
+	const common::ranked_symbol < > S (DefaultSymbolType { alphabet::WildcardSymbol {} }, DefaultRankType(0));
 	const ext::set<common::ranked_symbol < >> alphabet {a, b, c, S};
 
 	ext::tree < common::ranked_symbol < > > node3(c, {});
@@ -59,7 +59,7 @@ void PatternTest::testRankedPatternParser() {
 	const DefaultSymbolType ub = DefaultSymbolType('b');
 	const DefaultSymbolType uc = DefaultSymbolType('c');
 
-	const DefaultSymbolType uS { alphabet::SubtreeWildcardSymbol {} };
+	const DefaultSymbolType uS { alphabet::WildcardSymbol {} };
 	const ext::set<DefaultSymbolType> ualphabet {ua, ub, uc, uS};
 
 	ext::tree < DefaultSymbolType > unode3(uc, {});
@@ -79,7 +79,7 @@ void PatternTest::testUnrankedPatternParser() {
 	const DefaultSymbolType b = DefaultSymbolType('b');
 	const DefaultSymbolType c = DefaultSymbolType('c');
 
-	const DefaultSymbolType S { alphabet::SubtreeWildcardSymbol {} };
+	const DefaultSymbolType S { alphabet::WildcardSymbol {} };
 	const ext::set<DefaultSymbolType> alphabet {a, b, c, S};
 
 	ext::tree < DefaultSymbolType > node3(c, {});
@@ -107,7 +107,7 @@ void PatternTest::testUnrankedPatternParser() {
 	const common::ranked_symbol < > rb (DefaultSymbolType('b'), DefaultRankType(1));
 	const common::ranked_symbol < > rc (DefaultSymbolType('c'), DefaultRankType(0));
 
-	const common::ranked_symbol < > rS { DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0)};
+	const common::ranked_symbol < > rS { DefaultSymbolType { alphabet::WildcardSymbol {} }, DefaultRankType(0)};
 	const ext::set<common::ranked_symbol < >> ralphabet {ra, rb, rc, rS};
 
 	ext::tree < common::ranked_symbol < > > rnode3(rc, {});
@@ -127,7 +127,7 @@ void PatternTest::testPrefixRankedPatternParser() {
 	const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1));
 	const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0));
 
-	const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0));
+	const common::ranked_symbol < > S (DefaultSymbolType { alphabet::WildcardSymbol {} }, DefaultRankType(0));
 	const ext::set<common::ranked_symbol < >> alphabet {a, b, c, S};
 
 	ext::tree < common::ranked_symbol < > > node3(c, {});
@@ -156,7 +156,7 @@ void PatternTest::testPrefixRankedBarPatternParser() {
 	const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1));
 	const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0));
 
-	const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0));
+	const common::ranked_symbol < > S (DefaultSymbolType { alphabet::WildcardSymbol {} }, DefaultRankType(0));
 	const ext::set<common::ranked_symbol < >> alphabet {a, b, c, S};
 
 	ext::tree < common::ranked_symbol < > > node3(c, {});
diff --git a/alib2data/test-src/tree/TreeTest.cpp b/alib2data/test-src/tree/TreeTest.cpp
index 46d4678e170e1c34f5981fc8218a2946125b3201..f40573c989812a861a2d40254aeb6d00e2529d30 100644
--- a/alib2data/test-src/tree/TreeTest.cpp
+++ b/alib2data/test-src/tree/TreeTest.cpp
@@ -14,7 +14,7 @@
 #include "factory/XmlDataFactory.hpp"
 
 #include "common/ranked_symbol.hpp"
-#include "alphabet/SubtreeWildcardSymbol.h"
+#include "alphabet/WildcardSymbol.h"
 #include "alphabet/BarSymbol.h"
 
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TreeTest, "tree" );
diff --git a/alib2str/src/alphabet/string/SubtreeWildcardSymbol.cpp b/alib2str/src/alphabet/string/SubtreeWildcardSymbol.cpp
deleted file mode 100644
index a1545feb5bbf1fb5c5b0433f89e0a7214c143d42..0000000000000000000000000000000000000000
--- a/alib2str/src/alphabet/string/SubtreeWildcardSymbol.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * SubtreeWildcardSymbol.cpp
- *
- * Created on: Sep 27, 2017
- * Author: Jan Travnicek
- */
-
-#include "SubtreeWildcardSymbol.h"
-#include <alphabet/SubtreeWildcardSymbol.h>
-#include <object/Object.h>
-#include <alphabet/Symbol.h>
-
-#include <registration/StringRegistration.hpp>
-
-namespace core {
-
-alphabet::SubtreeWildcardSymbol stringApi < alphabet::SubtreeWildcardSymbol >::parse ( std::istream & ) {
-	throw exception::CommonException("parsing SubtreeWildcardSymbol from string not implemented");
-}
-
-bool stringApi < alphabet::SubtreeWildcardSymbol >::first ( std::istream & ) {
-	return false;
-}
-
-void stringApi < alphabet::SubtreeWildcardSymbol >::compose ( std::ostream & output, const alphabet::SubtreeWildcardSymbol & ) {
-	output << "#S";
-}
-
-} /* namespace core */
-
-namespace {
-
-static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::SubtreeWildcardSymbol > ( );
-static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::SubtreeWildcardSymbol > ( );
-
-} /* namespace */
diff --git a/alib2str/src/alphabet/string/WildcardSymbol.cpp b/alib2str/src/alphabet/string/WildcardSymbol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3cfcc4a26a7120c782da4859ec1d6c08c79e98fb
--- /dev/null
+++ b/alib2str/src/alphabet/string/WildcardSymbol.cpp
@@ -0,0 +1,36 @@
+/*
+ * WildcardSymbol.cpp
+ *
+ * Created on: Sep 27, 2017
+ * Author: Jan Travnicek
+ */
+
+#include "WildcardSymbol.h"
+#include <alphabet/WildcardSymbol.h>
+#include <object/Object.h>
+#include <alphabet/Symbol.h>
+
+#include <registration/StringRegistration.hpp>
+
+namespace core {
+
+alphabet::WildcardSymbol stringApi < alphabet::WildcardSymbol >::parse ( std::istream & ) {
+	throw exception::CommonException("parsing WildcardSymbol from string not implemented");
+}
+
+bool stringApi < alphabet::WildcardSymbol >::first ( std::istream & ) {
+	return false;
+}
+
+void stringApi < alphabet::WildcardSymbol >::compose ( std::ostream & output, const alphabet::WildcardSymbol & ) {
+	output << "#S";
+}
+
+} /* namespace core */
+
+namespace {
+
+static auto stringWrite = registration::StringWriterRegister < alphabet::Symbol, alphabet::WildcardSymbol > ( );
+static auto stringWrite2 = registration::StringWriterRegister < object::Object, alphabet::WildcardSymbol > ( );
+
+} /* namespace */
diff --git a/alib2str/src/alphabet/string/SubtreeWildcardSymbol.h b/alib2str/src/alphabet/string/WildcardSymbol.h
similarity index 53%
rename from alib2str/src/alphabet/string/SubtreeWildcardSymbol.h
rename to alib2str/src/alphabet/string/WildcardSymbol.h
index ab66cdeac4eee53965d97bffe24168ebc7a9b5d8..e7d95c2776edd93a7b5e1018a22c875470b3f20f 100644
--- a/alib2str/src/alphabet/string/SubtreeWildcardSymbol.h
+++ b/alib2str/src/alphabet/string/WildcardSymbol.h
@@ -1,5 +1,5 @@
 /*
- * SubtreeWildcardSymbol.h
+ * WildcardSymbol.h
  *
  * Created on: Sep 27, 2017
  * Author: Jan Travnicek
@@ -8,16 +8,16 @@
 #ifndef _STRING_SUBTREE_WILDCARD_SYMBOL_H_
 #define _STRING_SUBTREE_WILDCARD_SYMBOL_H_
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 #include <core/stringApi.hpp>
 
 namespace core {
 
 template < >
-struct stringApi < alphabet::SubtreeWildcardSymbol > {
-	static alphabet::SubtreeWildcardSymbol parse ( std::istream & input );
+struct stringApi < alphabet::WildcardSymbol > {
+	static alphabet::WildcardSymbol parse ( std::istream & input );
 	static bool first ( std::istream & input );
-	static void compose ( std::ostream & output, const alphabet::SubtreeWildcardSymbol & symbol );
+	static void compose ( std::ostream & output, const alphabet::WildcardSymbol & symbol );
 };
 
 } /* namespace core */
diff --git a/alib2str/src/tree/string/common/TreeFromStringParserCommon.h b/alib2str/src/tree/string/common/TreeFromStringParserCommon.h
index 1d340f671b50f1605bd9c95de8c2c9bdccb572f3..219c3c7f4ad2b64f41c6d4463cc71086db2e758c 100644
--- a/alib2str/src/tree/string/common/TreeFromStringParserCommon.h
+++ b/alib2str/src/tree/string/common/TreeFromStringParserCommon.h
@@ -14,7 +14,7 @@
 
 #include <string/StringFromStringLexer.h>
 
-#include <alphabet/SubtreeWildcardSymbol.h>
+#include <alphabet/WildcardSymbol.h>
 #include <alphabet/NonlinearVariableSymbol.h>
 
 namespace tree {
@@ -33,7 +33,7 @@ ext::tree < common::ranked_symbol < SymbolType, RankType > > TreeFromStringParse
 
 	if ( token.type == TreeFromStringLexer::TokenType::SUBTREE_WILDCARD ) {
 		isPattern = true;
-		return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { } );
+		return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { } );
 	} else if ( token.type == TreeFromStringLexer::TokenType::NONLINEAR_VARIABLE ) {
 		isPattern = true;
 		common::ranked_symbol < SymbolType, RankType > nonlinearVariable ( SymbolType ( alphabet::NonlinearVariableSymbol < SymbolType > ( SymbolType ( token.value ) ) ), RankType ( 0 ) );
@@ -68,7 +68,7 @@ ext::tree < SymbolType > TreeFromStringParserCommon::parseUnrankedContent ( std:
 			throw exception::CommonException ( "Missing bar" );
 
 		isPattern = true;
-		return ext::tree < SymbolType > ( alphabet::SubtreeWildcardSymbol::instance < SymbolType > ( ), { } );
+		return ext::tree < SymbolType > ( alphabet::WildcardSymbol::instance < SymbolType > ( ), { } );
 	} else if ( token.type == TreeFromStringLexer::TokenType::NONLINEAR_VARIABLE ) {
 		token = TreeFromStringLexer::next ( input );
 
diff --git a/alib2str/src/tree/string/ranked/RankedNonlinearPattern.h b/alib2str/src/tree/string/ranked/RankedNonlinearPattern.h
index de8d031742c05fe4fdb39f4abbe698bf61f83348..951c3523602ed0e3fe653b53ebb1d8f70a818dbc 100644
--- a/alib2str/src/tree/string/ranked/RankedNonlinearPattern.h
+++ b/alib2str/src/tree/string/ranked/RankedNonlinearPattern.h
@@ -38,7 +38,7 @@ tree::RankedNonlinearPattern < SymbolType, RankType > stringApi < tree::RankedNo
 	if ( ! isPattern && ! nonlinearVariables.size ( ) )
 		throw exception::CommonException ( "Invalid input" );
 
-	return tree::RankedNonlinearPattern < SymbolType, RankType > ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType > > ( ), nonlinearVariables, content );
+	return tree::RankedNonlinearPattern < SymbolType, RankType > ( alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType > > ( ), nonlinearVariables, content );
 }
 
 template<class SymbolType, class RankType >
diff --git a/alib2str/src/tree/string/ranked/RankedPattern.h b/alib2str/src/tree/string/ranked/RankedPattern.h
index 2e69071bf0e34aee485ba7806a55d9da07083ff3..7f73effe81e3104d4f62ddebc334a3b88c879425 100644
--- a/alib2str/src/tree/string/ranked/RankedPattern.h
+++ b/alib2str/src/tree/string/ranked/RankedPattern.h
@@ -38,7 +38,7 @@ tree::RankedPattern < SymbolType, RankType > stringApi < tree::RankedPattern < S
 	if ( ! isPattern || nonlinearVariables.size ( ) )
 		throw exception::CommonException ( "Invalid input" );
 
-	return tree::RankedPattern < SymbolType, RankType > ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType > > ( ), content );
+	return tree::RankedPattern < SymbolType, RankType > ( alphabet::WildcardSymbol::instance < common::ranked_symbol < SymbolType > > ( ), content );
 }
 
 template<class SymbolType, class RankType >
diff --git a/alib2str/src/tree/string/unranked/UnrankedNonlinearPattern.h b/alib2str/src/tree/string/unranked/UnrankedNonlinearPattern.h
index ed3d66affda018f1d54ab318c1e9e32fe81c1aa5..108f308b9c617988294975d377e627c6cd789d60 100644
--- a/alib2str/src/tree/string/unranked/UnrankedNonlinearPattern.h
+++ b/alib2str/src/tree/string/unranked/UnrankedNonlinearPattern.h
@@ -38,7 +38,7 @@ tree::UnrankedNonlinearPattern < SymbolType > stringApi < tree::UnrankedNonlinea
 	if ( ! isPattern && ! nonlinearVariables.size ( ) )
 		throw exception::CommonException ( "Invalid input" );
 
-	return tree::UnrankedNonlinearPattern < SymbolType > ( alphabet::SubtreeWildcardSymbol::instance < SymbolType > ( ), nonlinearVariables, content );
+	return tree::UnrankedNonlinearPattern < SymbolType > ( alphabet::WildcardSymbol::instance < SymbolType > ( ), nonlinearVariables, content );
 }
 
 template<class SymbolType >
diff --git a/alib2str/src/tree/string/unranked/UnrankedPattern.h b/alib2str/src/tree/string/unranked/UnrankedPattern.h
index 98a1a82b8a68515b48630f86ed99a677f2dce5e5..f8579f1c8df7754c1271cc36e9c8e1d1a302010e 100644
--- a/alib2str/src/tree/string/unranked/UnrankedPattern.h
+++ b/alib2str/src/tree/string/unranked/UnrankedPattern.h
@@ -38,7 +38,7 @@ tree::UnrankedPattern < SymbolType > stringApi < tree::UnrankedPattern < SymbolT
 	if ( ! isPattern || nonlinearVariables.size ( ) )
 		throw exception::CommonException ( "Invalid input" );
 
-	return tree::UnrankedPattern < SymbolType > ( alphabet::SubtreeWildcardSymbol::instance < SymbolType > ( ), content );
+	return tree::UnrankedPattern < SymbolType > ( alphabet::WildcardSymbol::instance < SymbolType > ( ), content );
 }
 
 template<class SymbolType >
diff --git a/examples2/tree/aarbology.test1.nonlinear.pattern.xml b/examples2/tree/aarbology.test1.nonlinear.pattern.xml
index 855a939fa3c5f7af8a14c37266b266b091720340..8f831c048520d2f5c95949f5b4bc3e5a68193d42 100644
--- a/examples2/tree/aarbology.test1.nonlinear.pattern.xml
+++ b/examples2/tree/aarbology.test1.nonlinear.pattern.xml
@@ -2,7 +2,7 @@
 <RankedNonlinearPattern>
   <subtreeWildcard>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </subtreeWildcard>
@@ -34,7 +34,7 @@
       <Unsigned>1</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
diff --git a/examples2/tree/aarbology.test1.pattern.xml b/examples2/tree/aarbology.test1.pattern.xml
index b6ad2ea5bacc31c6429453ddd3f63333110c9b57..8540c3eb4e175e34b0b8b8bb2b45193e1846a642 100644
--- a/examples2/tree/aarbology.test1.pattern.xml
+++ b/examples2/tree/aarbology.test1.pattern.xml
@@ -2,7 +2,7 @@
 <RankedPattern>
   <subtreeWildcard>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </subtreeWildcard>
@@ -16,7 +16,7 @@
       <Unsigned>1</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </alphabet>
@@ -32,11 +32,11 @@
       </RankedSymbol>
       <Children>
         <RankedSymbol>
-          <SubtreeWildcardSymbol/>
+          <WildcardSymbol/>
           <Unsigned>0</Unsigned>
         </RankedSymbol>
         <RankedSymbol>
-          <SubtreeWildcardSymbol/>
+          <WildcardSymbol/>
           <Unsigned>0</Unsigned>
         </RankedSymbol>
       </Children>
diff --git a/examples2/tree/aarbology.test2.pattern.xml b/examples2/tree/aarbology.test2.pattern.xml
index 6f4aaad728aa945b89a2d64028f993a1df354c8e..99ec9675935607ffe164f906db0c732b69d0e985 100644
--- a/examples2/tree/aarbology.test2.pattern.xml
+++ b/examples2/tree/aarbology.test2.pattern.xml
@@ -2,7 +2,7 @@
 <RankedPattern>
   <subtreeWildcard>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </subtreeWildcard>
@@ -20,7 +20,7 @@
       <Unsigned>2</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </alphabet>
@@ -31,7 +31,7 @@
     </RankedSymbol>
     <Children>
       <RankedSymbol>
-        <SubtreeWildcardSymbol/>
+        <WildcardSymbol/>
         <Unsigned>0</Unsigned>
       </RankedSymbol>
       <RankedSymbol>
@@ -40,7 +40,7 @@
       </RankedSymbol>
       <Children>
         <RankedSymbol>
-          <SubtreeWildcardSymbol/>
+          <WildcardSymbol/>
           <Unsigned>0</Unsigned>
         </RankedSymbol>
       </Children>
diff --git a/examples2/tree/aarbology.test3.nonlinear.pattern.xml b/examples2/tree/aarbology.test3.nonlinear.pattern.xml
index 660bc9cdd128a1693e061a54474c6fb114348037..a70d39fcc697afa62acde99d440480504ba411e1 100644
--- a/examples2/tree/aarbology.test3.nonlinear.pattern.xml
+++ b/examples2/tree/aarbology.test3.nonlinear.pattern.xml
@@ -2,7 +2,7 @@
 <RankedNonlinearPattern>
   <subtreeWildcard>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </subtreeWildcard>
@@ -20,7 +20,7 @@
       <Unsigned>2</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
diff --git a/examples2/tree/aarbology.test4.pattern.xml b/examples2/tree/aarbology.test4.pattern.xml
index 88691960e8df0b26a841fff77389cfe60903016e..bcbf4af91e372def4329accdb6f7cbebae54f492 100644
--- a/examples2/tree/aarbology.test4.pattern.xml
+++ b/examples2/tree/aarbology.test4.pattern.xml
@@ -2,7 +2,7 @@
 <RankedPattern>
   <subtreeWildcard>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </subtreeWildcard>
@@ -16,7 +16,7 @@
       <Unsigned>0</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
-      <SubtreeWildcardSymbol/>
+      <WildcardSymbol/>
       <Unsigned>0</Unsigned>
     </RankedSymbol>
   </alphabet>
@@ -27,7 +27,7 @@
     </RankedSymbol>
     <Children>
       <RankedSymbol>
-        <SubtreeWildcardSymbol/>
+        <WildcardSymbol/>
         <Unsigned>0</Unsigned>
       </RankedSymbol>
       <RankedSymbol>
diff --git a/examples2/tree/pattern.xml b/examples2/tree/pattern.xml
index 73fec773055ee8c94170146b5a05838d99709eca..0b032e1374e23ed98e9a0d6b2643fff850b61178 100644
--- a/examples2/tree/pattern.xml
+++ b/examples2/tree/pattern.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0"?>
-<RankedPattern><subtreeWildcard><RankedSymbol><SubtreeWildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol></subtreeWildcard><alphabet><RankedSymbol><SubtreeWildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol><RankedSymbol><Character>97</Character><Unsigned>0</Unsigned></RankedSymbol><RankedSymbol><Character>98</Character><Unsigned>1</Unsigned></RankedSymbol><RankedSymbol><Character>99</Character><Unsigned>2</Unsigned></RankedSymbol></alphabet><content><RankedSymbol><Character>99</Character><Unsigned>2</Unsigned></RankedSymbol><Children><RankedSymbol><Character>98</Character><Unsigned>1</Unsigned></RankedSymbol><Children><RankedSymbol><SubtreeWildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol></Children><RankedSymbol><SubtreeWildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol></Children></content></RankedPattern>
+<RankedPattern><subtreeWildcard><RankedSymbol><WildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol></subtreeWildcard><alphabet><RankedSymbol><WildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol><RankedSymbol><Character>97</Character><Unsigned>0</Unsigned></RankedSymbol><RankedSymbol><Character>98</Character><Unsigned>1</Unsigned></RankedSymbol><RankedSymbol><Character>99</Character><Unsigned>2</Unsigned></RankedSymbol></alphabet><content><RankedSymbol><Character>99</Character><Unsigned>2</Unsigned></RankedSymbol><Children><RankedSymbol><Character>98</Character><Unsigned>1</Unsigned></RankedSymbol><Children><RankedSymbol><WildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol></Children><RankedSymbol><WildcardSymbol/><Unsigned>0</Unsigned></RankedSymbol></Children></content></RankedPattern>