diff --git a/alib2abstraction/src/abstraction/Value.cpp b/alib2abstraction/src/abstraction/Value.cpp
index cb0f1de4dd2ba44ad7765b36d16745a20f935f5e..ac3a31e7737a2b1165ec228cd7797fc1c4b0b78c 100644
--- a/alib2abstraction/src/abstraction/Value.cpp
+++ b/alib2abstraction/src/abstraction/Value.cpp
@@ -10,7 +10,7 @@
 
 namespace abstraction {
 
-Value::Value ( std::shared_ptr < abstraction::OperationAbstraction > ref ) : m_lifeReference ( std::move ( ref ) ) {
+Value::Value ( const std::shared_ptr < abstraction::OperationAbstraction > & ref ) : m_lifeReference ( ref ) {
 }
 
 std::shared_ptr < abstraction::Value > Value::getProxyAbstraction ( ) {
@@ -21,7 +21,7 @@ std::string Value::getType ( ) const {
 	return ext::to_string ( getTypeIndex ( ) );
 }
 
-const std::shared_ptr < abstraction::OperationAbstraction > Value::getLifeReference ( ) const {
+const std::shared_ptr < abstraction::OperationAbstraction > & Value::getLifeReference ( ) const {
 	return m_lifeReference;
 }
 
@@ -43,7 +43,7 @@ ext::set < abstraction::ParamQualifiers::ParamQualifier > Void::getTypeQualifier
 }
 
 
-LazyValue::LazyValue ( std::shared_ptr < abstraction::OperationAbstraction > ref ) : Value ( ref ) {
+LazyValue::LazyValue ( const std::shared_ptr < abstraction::OperationAbstraction > & ref ) : Value ( std::move ( ref ) ) {
 }
 
 std::shared_ptr < abstraction::Value > LazyValue::cloneAsVariable ( bool, bool, bool, bool ) {
diff --git a/alib2abstraction/src/abstraction/Value.hpp b/alib2abstraction/src/abstraction/Value.hpp
index 30399e5ab45eac24b278fc43d19065c45aa44e51..0f628fc1f6674daf3969e3264ba108b30bf757b8 100644
--- a/alib2abstraction/src/abstraction/Value.hpp
+++ b/alib2abstraction/src/abstraction/Value.hpp
@@ -22,7 +22,7 @@ class Value : public std::enable_shared_from_this < Value > {
 	std::shared_ptr < abstraction::OperationAbstraction > m_lifeReference;
 
 public:
-	Value ( std::shared_ptr < abstraction::OperationAbstraction > ref );
+	Value ( const std::shared_ptr < abstraction::OperationAbstraction > & ref );
 
 	virtual ~Value ( ) noexcept = default;
 
@@ -37,7 +37,7 @@ public:
 
 	virtual ext::set < abstraction::ParamQualifiers::ParamQualifier > getTypeQualifiers ( ) const = 0;
 
-	const std::shared_ptr < abstraction::OperationAbstraction > getLifeReference ( ) const;
+	const std::shared_ptr < abstraction::OperationAbstraction > & getLifeReference ( ) const;
 };
 
 class Void : public Value {
@@ -58,7 +58,7 @@ class LazyValue : public Value {
 	std::shared_ptr < Value > cache;
 
 public:
-	LazyValue ( std::shared_ptr < abstraction::OperationAbstraction > ref );
+	LazyValue ( const std::shared_ptr < abstraction::OperationAbstraction > & ref );
 
 	std::shared_ptr < abstraction::Value > cloneAsVariable ( bool, bool, bool, bool ) override;
 
diff --git a/alib2abstraction/src/abstraction/ValueHolder.hpp b/alib2abstraction/src/abstraction/ValueHolder.hpp
index 49068c4fd21ae31a711514d600c3e5acef695612..b2810575cc39c6f722d64ab4dce20bc21e5423f3 100644
--- a/alib2abstraction/src/abstraction/ValueHolder.hpp
+++ b/alib2abstraction/src/abstraction/ValueHolder.hpp
@@ -116,7 +116,7 @@ class ValueHolder : public ValueHolderImpl < Type > {
 	using ValueHolderImpl < Type >::ValueHolderImpl;
 
 public:
-	ValueHolder ( std::shared_ptr < abstraction::OperationAbstraction > ref, Type && value ) : ValueHolderImpl < Type > ( std::move ( ref ), std::is_const_v < std::remove_reference_t < Type > >, std::is_rvalue_reference_v < Type >, std::is_lvalue_reference_v < Type >, true ) {
+	ValueHolder ( const std::shared_ptr < abstraction::OperationAbstraction > & ref, Type && value ) : ValueHolderImpl < Type > ( ref, std::is_const_v < std::remove_reference_t < Type > >, std::is_rvalue_reference_v < Type >, std::is_lvalue_reference_v < Type >, true ) {
 		this->setData ( std::forward < Type > ( value ) );
 	}
 
diff --git a/alib2abstraction/src/abstraction/ValueHolderInterface.hpp b/alib2abstraction/src/abstraction/ValueHolderInterface.hpp
index d5b0c6c68a8ce8c087613e7ede9b8a25aff00362..1995d0130fe4453054eaf36f5fb40133942633f9 100644
--- a/alib2abstraction/src/abstraction/ValueHolderInterface.hpp
+++ b/alib2abstraction/src/abstraction/ValueHolderInterface.hpp
@@ -20,7 +20,7 @@ class ValueHolderInterface : public Value {
 	bool m_isAutoMove;
 
 public:
-	ValueHolderInterface ( std::shared_ptr < abstraction::OperationAbstraction > ref, bool isConst, bool isRvalueRef, bool isLvalueRef, bool isAutoMove ) : Value ( std::move ( ref ) ), m_isConst ( isConst ), m_isRvalueRef ( isRvalueRef ), m_isLvalueRef ( isLvalueRef ), m_isAutoMove ( isAutoMove ) {
+	ValueHolderInterface ( const std::shared_ptr < abstraction::OperationAbstraction > & ref, bool isConst, bool isRvalueRef, bool isLvalueRef, bool isAutoMove ) : Value ( ref ), m_isConst ( isConst ), m_isRvalueRef ( isRvalueRef ), m_isLvalueRef ( isLvalueRef ), m_isAutoMove ( isAutoMove ) {
 	}
 
 	virtual Type && getValue ( ) const = 0;
diff --git a/alib2data/src/common/ranked_symbol.hpp b/alib2data/src/common/ranked_symbol.hpp
index fbffc01bdb67dc8c2d2632ac2da6902dab2efa66..925b3bf20f6134956cf2a1b60c0464ee16fc9d9c 100644
--- a/alib2data/src/common/ranked_symbol.hpp
+++ b/alib2data/src/common/ranked_symbol.hpp
@@ -88,7 +88,7 @@ public:
 };
 
 template < class SymbolType >
-ranked_symbol < SymbolType >::ranked_symbol(SymbolType symbol, size_t rank) : m_symbol(std::move(symbol)), m_rank(std::move(rank)) {
+ranked_symbol < SymbolType >::ranked_symbol(SymbolType symbol, size_t rank) : m_symbol(std::move(symbol)), m_rank(rank) {
 
 }
 
diff --git a/alib2gui/src/Graphics/GraphicsBox.hpp b/alib2gui/src/Graphics/GraphicsBox.hpp
index 2a76fa358cde6f6c8ac6af185f71a008bef85e42..10bc71a7e2bac6ba0ba7ee34cec8fe98ae107296 100644
--- a/alib2gui/src/Graphics/GraphicsBox.hpp
+++ b/alib2gui/src/Graphics/GraphicsBox.hpp
@@ -13,7 +13,7 @@ class GraphicsBox : public QGraphicsObject {
     Q_OBJECT
 public:
     GraphicsBox(std::unique_ptr<ModelBox> p_modelBox, QPointF pos);
-    virtual ~GraphicsBox();
+    ~GraphicsBox() override;
 
     QRectF boundingRect() const override;
     void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
diff --git a/alib2gui/src/MainWindow.cpp b/alib2gui/src/MainWindow.cpp
index 1f5a4a2a5f2cbc8554ce17c10c119bc08f991425..83d7eb881bea33865698178c043cee3eeff4987b 100644
--- a/alib2gui/src/MainWindow.cpp
+++ b/alib2gui/src/MainWindow.cpp
@@ -144,7 +144,7 @@ void MainWindow::on_actionOpen_triggered() {
 
         stream.close ( );
 
-        if (parsed.isMember("boxes") != 1 || !parsed["boxes"].isArray() || parsed["boxes"].empty())
+        if (parsed.isMember("boxes") || !parsed["boxes"].isArray() || parsed["boxes"].empty())
             throw std::runtime_error { "No boxes were defined." };
 
         // clear existing boxes