diff --git a/alib2data/src/string/CyclicString.cpp b/alib2data/src/string/CyclicString.cpp
index ad66f79f17d411dbc937f4af5d185813b04126c7..f759d8c76cd58631217b642bf78a8dabd98ca66e 100644
--- a/alib2data/src/string/CyclicString.cpp
+++ b/alib2data/src/string/CyclicString.cpp
@@ -20,22 +20,12 @@ CyclicString::CyclicString() {
 
 }
 
-CyclicString::CyclicString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data) {
-	this->alphabet = alphabet;
-	setContent(data);
-}
-
-CyclicString::CyclicString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data) {
+CyclicString::CyclicString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data) {
 	this->alphabet = std::move(alphabet);
 	setContent(std::move(data));
 }
 
-CyclicString::CyclicString(const std::vector<alphabet::Symbol>& data) {
-	alphabet = std::set<alphabet::Symbol>(data.begin(), data.end());
-	setContent(std::move(data));
-}
-
-CyclicString::CyclicString(std::vector<alphabet::Symbol>&& data) {
+CyclicString::CyclicString(std::vector<alphabet::Symbol> data) {
 	alphabet = std::set<alphabet::Symbol>(data.begin(), data.end());
 	setContent(std::move(data));
 }
diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h
index e90195188fef9c44833fa63a2c27d71a57d2a908..2bfc309f56c506611b1c1da83baadbfd1758833f 100644
--- a/alib2data/src/string/CyclicString.h
+++ b/alib2data/src/string/CyclicString.h
@@ -27,10 +27,8 @@ class CyclicString : public std::acceptor<CyclicString, VisitableStringBase, std
 	std::vector<alphabet::Symbol> m_Data;
 public:
 	explicit CyclicString();
-	explicit CyclicString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data);
-	explicit CyclicString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data);
-	explicit CyclicString(const std::vector<alphabet::Symbol>& data);
-	explicit CyclicString(std::vector<alphabet::Symbol>&& data);
+	explicit CyclicString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data);
+	explicit CyclicString(std::vector<alphabet::Symbol> data);
 	explicit CyclicString(const std::string& string);
 	explicit CyclicString(const char* string);
 	explicit CyclicString(const Epsilon& epsilon);
diff --git a/alib2data/src/string/LinearString.cpp b/alib2data/src/string/LinearString.cpp
index 93ee9968ce058f2f85c1372768461e51f7df9349..e718983f5c481237a183eb02153ec076d038f28e 100644
--- a/alib2data/src/string/LinearString.cpp
+++ b/alib2data/src/string/LinearString.cpp
@@ -20,22 +20,12 @@ LinearString::LinearString() {
 
 }
 
-LinearString::LinearString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data) {
-	this->alphabet = alphabet;
-	setContent(data);
-}
-
-LinearString::LinearString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data) {
+LinearString::LinearString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data) {
 	this->alphabet = std::move(alphabet);
 	setContent(std::move(data));
 }
 
-LinearString::LinearString(const std::vector<alphabet::Symbol>& data) {
-	alphabet = std::set<alphabet::Symbol>(data.begin(), data.end());
-	m_Data = data;
-}
-
-LinearString::LinearString(std::vector<alphabet::Symbol>&& data) {
+LinearString::LinearString(std::vector<alphabet::Symbol> data) {
 	alphabet = std::set<alphabet::Symbol>(data.begin(), data.end());
 	m_Data = std::move(data);
 }
@@ -69,13 +59,7 @@ bool LinearString::removeSymbolFromAlphabet(const alphabet::Symbol & symbol) {
 	return alphabet.erase(symbol);
 }
 
-void LinearString::appendSymbol(const alphabet::Symbol& symbol) {
-	if(alphabet.count(symbol) == 0)
-		throw exception::AlibException("Input symbol \"" + (std::string) symbol + "\" not in the alphabet.");
-	m_Data.push_back(symbol);
-}
-
-void LinearString::appendSymbol(alphabet::Symbol&& symbol) {
+void LinearString::appendSymbol(alphabet::Symbol symbol) {
 	if(alphabet.count(symbol) == 0)
 		throw exception::AlibException("Input symbol \"" + (std::string) symbol + "\" not in the alphabet.");
 	m_Data.push_back(std::move(symbol));
diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h
index 67712ca6f8b719808a7fd6ca46a11b46504d3942..6720ba4aa44b30d60c6cd705604de2131b9a0a61 100644
--- a/alib2data/src/string/LinearString.h
+++ b/alib2data/src/string/LinearString.h
@@ -28,10 +28,8 @@ class LinearString : public std::acceptor<LinearString, VisitableStringBase, std
 
 public:
 	explicit LinearString();
-	explicit LinearString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data);
-	explicit LinearString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data);
-	explicit LinearString(const std::vector<alphabet::Symbol>& data);
-	explicit LinearString(std::vector<alphabet::Symbol>&& data);
+	explicit LinearString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data);
+	explicit LinearString(std::vector<alphabet::Symbol> data);
 	explicit LinearString(const std::string& string);
 	explicit LinearString(const char* string);
 	explicit LinearString(const Epsilon& epsilon);
@@ -44,9 +42,7 @@ public:
 	/**
 	 * @param element to append
 	 */
-	void appendSymbol(const alphabet::Symbol& symbol);
-
-	void appendSymbol(alphabet::Symbol&& symbol);
+	void appendSymbol(alphabet::Symbol symbol);
 
 	/**
 	 * @return List of symbols forming string (const version).