diff --git a/alib2/src/string/StringFromXMLParser.cpp b/alib2/src/string/StringFromXMLParser.cpp
index 325f71b9fca45f268c7ea195453d21baa7e65780..5f41dce449f012ecf317fb78fed1bfdefe4992f1 100644
--- a/alib2/src/string/StringFromXMLParser.cpp
+++ b/alib2/src/string/StringFromXMLParser.cpp
@@ -72,8 +72,16 @@ String StringFromXMLParser::parseValue(std::list<sax::Token>& input) const {
 	}
 }
 
+bool StringFromXMLParser::first(std::list<sax::Token>& input) const {
+	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "string")) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
 String* StringFromXMLParser::parsePointer(std::list<sax::Token>& input) const {
-	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "Epsilon") || isToken(input, sax::Token::TokenType::START_ELEMENT, "LinearString") || isToken(input, sax::Token::TokenType::START_ELEMENT, "CyclicString")) {
+	if(first(input)) {
 		return new String(parse(input));
 	} else {
 		return NULL;
diff --git a/alib2/src/string/StringFromXMLParser.h b/alib2/src/string/StringFromXMLParser.h
index 9ed0008fa4500e6de2bc5f637649650779cbd801..2da6ded4e50877e858e64616838f60103821cd89 100644
--- a/alib2/src/string/StringFromXMLParser.h
+++ b/alib2/src/string/StringFromXMLParser.h
@@ -28,8 +28,10 @@ class StringFromXMLParser : public sax::FromXMLParser {
 
 	String parse(std::list<sax::Token>& input) const;
 	String parse(std::list<sax::Token>& input, const std::set<FEATURES>& features) const;
-	String* parsePointer(std::list<sax::Token>& input) const;
 public:
+	bool first(std::list<sax::Token>& input) const;
+	String* parsePointer(std::list<sax::Token>& input) const;
+
 	/**
 	 * Parses the XML and returns regular expression. The input is destroyed in the process.
 	 * @param input XML represented as list of tokens