diff --git a/Src/CMakeLists.txt b/Src/CMakeLists.txt
index dec838b89d334795c01d7b7d8e6b3d4bab7343b7..53167ff20edaf21a8a1f00089ce78609af037784 100644
--- a/Src/CMakeLists.txt
+++ b/Src/CMakeLists.txt
@@ -30,17 +30,17 @@ set_target_properties(${TN} PROPERTIES
 
 target_sources(${TN}
 PRIVATE
-    "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedComponentFactory.cpp"
-    "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedElement.cpp"
-    "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedTrajectory.cpp"
-    "${CMAKE_CURRENT_LIST_DIR}/util/misc.cpp"
-    "${CMAKE_CURRENT_LIST_DIR}/IConfig.cpp"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedComponentFactory.cpp"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedElement.cpp"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedTrajectory.cpp"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/misc.cpp"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/IConfig.cpp"
 )
 
 set(${TN}_PUBLIC_HEADERS
-    "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedComponentFactory.h"
-    "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedElement.h"
-    "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedTrajectory.h"
-    "${CMAKE_CURRENT_LIST_DIR}/util/misc.h"
-    "${CMAKE_CURRENT_LIST_DIR}/IConfig.h"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedComponentFactory.h"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedElement.h"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedTrajectory.h"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/misc.h"
+    "${CMAKE_CURRENT_LIST_DIR}/Utility/IConfig.h"
 )
\ No newline at end of file
diff --git a/Src/TrackedComponents/TrackedComponentFactory.h b/Src/TrackedComponents/TrackedComponentFactory.h
deleted file mode 100644
index 70b0d8eef2eb0743b10cdfd8f36bf3b58651c59d..0000000000000000000000000000000000000000
--- a/Src/TrackedComponents/TrackedComponentFactory.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef TRACKEDCOMPONENTFACTORY_H
-#define TRACKEDCOMPONENTFACTORY_H
-
-#include "Interfaces/IModel/IModelTrackedComponentFactory.h"
-
-class TrackedComponentFactory : public IModelTrackedComponentFactory
-{
-    Q_OBJECT
-public:
-    TrackedComponentFactory();
-    ~TrackedComponentFactory();
-
-    QList<QString> getElementTypes() override;
-    // ITrackedComponentFactory interface
-protected:
-    IModelTrackedComponent *createTrackedElement(QString name) override;
-    IModelTrackedComponent *createTrackedObject(QString name) override;
-    IModelTrackedComponent *createTrackedTrajectory(QString name) override;
-};
-
-#endif // TRACKEDOBJECTFACTORY_H
diff --git a/Src/TrackedComponents/TrackedElement.h b/Src/TrackedComponents/TrackedElement.h
deleted file mode 100644
index fa8b9f9f6d1ba320e0feb591adb5164e0e3f7b30..0000000000000000000000000000000000000000
--- a/Src/TrackedComponents/TrackedElement.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef TRACKEDELEMENT_H
-#define TRACKEDELEMENT_H
-
-#include "QGraphicsItem"
-#include "Interfaces/IModel/IModelTrackedComponent.h"
-#include "QString"
-#include <cv.h>
-#include <qdatetime.h>
-#include <ctime>
-
-/**
-* This class is an example of how a TrackedComponent could be defined.
-* This class inherits from the IModelTrackedComponent class and is therefor part of the Composite Pattern.
-* This class represents the Leaf class in the Composite Pattern.
-* Objects of this class have a QObject as parent.
-*/
-class TrackedElement : public IModelTrackedPoint
-{
-	Q_OBJECT
-
-public:
-	TrackedElement(QObject *parent = 0, QString name = "n.a.", int id = 0);
-
-	QString getName();
-    QString getCoordinateUnit() override { return "px"; };
-
-    void  setX(float val);
-    void  setY(float val);
-    void  setW(float w) {};
-    void  setH(float h) {};
-    void  setXpx(float val) {};
-    void  setYpx(float val) {};
-    void  setWpx(float w) {};
-    void  setHpx(float h) {};
-	void  setRad(float r) {};
-	void  setDeg(float d) {};
-	void  setId(int val) { _id = val; };
-    void  setTime(std::chrono::system_clock::time_point t) {
-        _timeSysclck = t;
-    };
-    void  setTime(qint64 t) {
-        _time = t;
-        std::string::size_type sz = 0;
-        long long ll = t / 1000;
-        std::time_t tm(ll);
-        _timeSysclck = std::chrono::system_clock::from_time_t(tm);
-    };
-    void  setTimeString(QString t) { _timeString = t; };
-	void  setValid(bool v) { _valid = v; };
-	void  setFixed(bool f) { _fixed = f; };
-
-    float getX();
-    float getY();
-    float getXpx();
-    float getYpx();
-    float getW() { return 0; };
-    float getH() { return 0; };
-    float getWpx() { return 0; };
-    float getHpx() { return 0; };
-	float getRad() { return 0; };
-	float getDeg() { return 0; };
-	int   getId() { return _id; };
-    qint64  getTime() {
-        qint64 q(std::chrono::duration_cast<std::chrono::milliseconds>(_timeSysclck.time_since_epoch()).count());
-        return q;
-    };
-    QString getTimeString() {
-        std::time_t t = std::chrono::system_clock::to_time_t(_timeSysclck);
-        QDateTime dt;
-        dt.setTime_t(t);
-        _timeString = dt.toString();
-        return _timeString;
-    };
-	bool  getValid() { return _valid; };
-	bool  getFixed() { return _fixed; };
-
-	bool hasX() { return true; };
-	bool hasY() { return true; };
-	bool hasW() { return false; };
-	bool hasH() { return false; };
-    bool hasXpx() { return false; };
-    bool hasYpx() { return false; };
-    bool hasWpx() { return false; };
-    bool hasHpx() { return false; };
-	bool hasRad() { return false; };
-	bool hasDeg() { return false; };
-	bool hasTime() { return true; };
-    bool hasTimeString() { return true; };
-
-	void setPoint(cv::Point2f p);
-    cv::Point2f getPoint();
-
-	// ITrackedPoint interface
-public:
-	void operate();
-
-private:
-    std::chrono::system_clock::time_point _timeSysclck;
-	QString _name;
-	float _x;
-	float _y;
-	int _id;
-	bool _valid;
-	bool _fixed;
-};
-
-#endif // TRACKEDELEMENT_H
diff --git a/Src/TrackedComponents/TrackedTrajectory.h b/Src/TrackedComponents/TrackedTrajectory.h
deleted file mode 100644
index 11710c76b2d8a95a8358f1244529df11a212512d..0000000000000000000000000000000000000000
--- a/Src/TrackedComponents/TrackedTrajectory.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef TRACKEDOTRAJECTORY_H
-#define TRACKEDOTRAJECTORY_H
-
-#include "Interfaces/IModel/IModelTrackedTrajectory.h"
-#include "QList"
-#include "QString"
-
-/**
- * This class inherits from the IModelTrackedTrajectory class and is therefor part of the Composite Pattern.
- * This class represents the Composite class.
- * This class is responsibility for the handling of Leaf objects.
- * Internaly this class uses a QList for storing Leaf object.
- *
- * Objects of this class have a QObject as parent.
- */
-class TrackedTrajectory : public IModelTrackedTrajectory {
-	Q_OBJECT
-
-  public:
-	TrackedTrajectory(QObject *parent = 0, QString name = "n.a.");
-
-	// ITrackedComponent interface
-public:
-	void operate();
-
-	// ITrackedObject interface
-public:
-	void add(IModelTrackedComponent *comp, int pos = -1) override;
-	bool remove(IModelTrackedComponent *comp) override;
-	void clear() override;
-	IModelTrackedComponent *getChild(int index) override;
-    IModelTrackedComponent *getValidChild(int index) override;
-	IModelTrackedComponent *getLastChild() override;
-
-    int size() override;
-    int validCount();
-
-private:
-	QList<IModelTrackedComponent*> _TrackedComponents;
-
-	QString name;
-};
-
-#endif // TRACKEDOTRAJECTORY_H
diff --git a/Src/IConfig.cpp b/Src/Utility/IConfig.cpp
similarity index 100%
rename from Src/IConfig.cpp
rename to Src/Utility/IConfig.cpp
diff --git a/Src/IConfig.h b/Src/Utility/IConfig.h
similarity index 100%
rename from Src/IConfig.h
rename to Src/Utility/IConfig.h
diff --git a/Src/TrackedComponents/TrackedComponentFactory.cpp b/Src/Utility/TrackedComponents/TrackedComponentFactory.cpp
similarity index 100%
rename from Src/TrackedComponents/TrackedComponentFactory.cpp
rename to Src/Utility/TrackedComponents/TrackedComponentFactory.cpp
diff --git a/Src/Utility/TrackedComponents/TrackedComponentFactory.h b/Src/Utility/TrackedComponents/TrackedComponentFactory.h
new file mode 100644
index 0000000000000000000000000000000000000000..42a961d477a9bcd052ab611e11862babc1134fbe
--- /dev/null
+++ b/Src/Utility/TrackedComponents/TrackedComponentFactory.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "Interfaces/IModel/IModelTrackedComponentFactory.h"
+
+class TrackedComponentFactory : public IModelTrackedComponentFactory
+{
+    Q_OBJECT
+public:
+    TrackedComponentFactory();
+    virtual ~TrackedComponentFactory();
+
+    virtual QList<QString> getElementTypes() override;
+    // ITrackedComponentFactory interface
+protected:
+    virtual IModelTrackedComponent *createTrackedElement(QString name) override;
+    virtual IModelTrackedComponent *createTrackedObject(QString name) override;
+    virtual IModelTrackedComponent *createTrackedTrajectory(QString name) override;
+};
+
diff --git a/Src/TrackedComponents/TrackedElement.cpp b/Src/Utility/TrackedComponents/TrackedElement.cpp
similarity index 100%
rename from Src/TrackedComponents/TrackedElement.cpp
rename to Src/Utility/TrackedComponents/TrackedElement.cpp
diff --git a/Src/Utility/TrackedComponents/TrackedElement.h b/Src/Utility/TrackedComponents/TrackedElement.h
new file mode 100644
index 0000000000000000000000000000000000000000..f08f99b0c9e341bebcf4b8eff06e780b912777ba
--- /dev/null
+++ b/Src/Utility/TrackedComponents/TrackedElement.h
@@ -0,0 +1,106 @@
+#pragma once
+
+#include "QGraphicsItem"
+#include "Interfaces/IModel/IModelTrackedComponent.h"
+#include "QString"
+#include <cv.h>
+#include <qdatetime.h>
+#include <ctime>
+
+/**
+* This class is an example of how a TrackedComponent could be defined.
+* This class inherits from the IModelTrackedComponent class and is therefor part of the Composite Pattern.
+* This class represents the Leaf class in the Composite Pattern.
+* Objects of this class have a QObject as parent.
+*/
+class TrackedElement : public IModelTrackedPoint
+{
+	Q_OBJECT
+
+public:
+	TrackedElement(QObject *parent = 0, QString name = "n.a.", int id = 0);
+    virtual ~TrackedElement() {};
+
+	virtual QString getName();
+    virtual QString getCoordinateUnit() override { return "px"; };
+
+    virtual void  setX(float val) override;
+    virtual void  setY(float val) override;
+    virtual void  setW(float w) override {};
+    virtual void  setH(float h) override {};
+    virtual void  setXpx(float val) override {};
+    virtual void  setYpx(float val) override {};
+    virtual void  setWpx(float w) override {};
+    virtual void  setHpx(float h) override {};
+	virtual void  setRad(float r) override {};
+	virtual void  setDeg(float d)  override{};
+	virtual void  setId(int val) override { _id = val; };
+    virtual void  setTime(std::chrono::system_clock::time_point t) {
+        _timeSysclck = t;
+    };
+    virtual void  setTime(qint64 t) override {
+        std::string::size_type sz = 0;
+        long long ll = t / 1000;
+        std::time_t tm(ll);
+        _timeSysclck = std::chrono::system_clock::from_time_t(tm);
+    };
+    virtual void  setTimeString(QString t) override { _timeString = t; };
+	virtual void  setValid(bool v) override { _valid = v; };
+	virtual void  setFixed(bool f) override { _fixed = f; };
+
+    virtual float getX() override;
+    virtual float getY() override;
+    virtual float getXpx() override;
+    virtual float getYpx() override;
+    virtual float getW() override { return 0; };
+    virtual float getH() override { return 0; };
+    virtual float getWpx() override { return 0; };
+    virtual float getHpx() override { return 0; };
+	virtual float getRad() override { return 0; };
+	virtual float getDeg() override { return 0; };
+	virtual int   getId() override { return _id; };
+    virtual qint64  getTime() override {
+        qint64 q(std::chrono::duration_cast<std::chrono::milliseconds>(_timeSysclck.time_since_epoch()).count());
+        return q;
+    };
+    virtual QString getTimeString() override {
+        std::time_t t = std::chrono::system_clock::to_time_t(_timeSysclck);
+        QDateTime dt;
+        dt.setTime_t(t);
+        _timeString = dt.toString();
+        return _timeString;
+    };
+	virtual bool  getValid() override { return _valid; };
+	virtual bool  getFixed() override { return _fixed; };
+
+	virtual bool hasX() override { return true; };
+	virtual bool hasY() override { return true; };
+	virtual bool hasW() override { return false; };
+	virtual bool hasH() override { return false; };
+    virtual bool hasXpx() override { return false; };
+    virtual bool hasYpx() override { return false; };
+    virtual bool hasWpx() override { return false; };
+    virtual bool hasHpx() override { return false; };
+	virtual bool hasRad() override { return false; };
+	virtual bool hasDeg() override { return false; };
+	virtual bool hasTime() override { return true; };
+    virtual bool hasTimeString() override { return true; };
+
+	virtual void setPoint(cv::Point2f p);
+    virtual cv::Point2f getPoint();
+
+	// ITrackedPoint interface
+public:
+	void operate();
+
+private:
+    std::chrono::system_clock::time_point _timeSysclck;
+	QString _name;
+    QString _timeString;                         /**< timestamp a formatted as string */
+	float _x;
+	float _y;
+	int _id;
+	bool _valid;
+	bool _fixed;
+};
+
diff --git a/Src/TrackedComponents/TrackedTrajectory.cpp b/Src/Utility/TrackedComponents/TrackedTrajectory.cpp
similarity index 100%
rename from Src/TrackedComponents/TrackedTrajectory.cpp
rename to Src/Utility/TrackedComponents/TrackedTrajectory.cpp
diff --git a/Src/Utility/TrackedComponents/TrackedTrajectory.h b/Src/Utility/TrackedComponents/TrackedTrajectory.h
new file mode 100644
index 0000000000000000000000000000000000000000..0f9511f4643cd4d26681e31b1a8753996f07533c
--- /dev/null
+++ b/Src/Utility/TrackedComponents/TrackedTrajectory.h
@@ -0,0 +1,54 @@
+#pragma once
+
+#include "Interfaces/IModel/IModelTrackedTrajectory.h"
+#include "QList"
+#include "QString"
+
+/**
+ * This class inherits from the IModelTrackedTrajectory class and is therefor part of the Composite Pattern.
+ * This class represents the Composite class.
+ * This class is responsibility for the handling of Leaf objects.
+ * Internaly this class uses a QList for storing Leaf object.
+ *
+ * Objects of this class have a QObject as parent.
+ */
+class TrackedTrajectory : public IModelTrackedTrajectory {
+	Q_OBJECT
+
+  public:
+	TrackedTrajectory(QObject *parent = 0, QString name = "n.a.");
+    virtual ~TrackedTrajectory() {};
+
+	// ITrackedComponent interface
+public:
+	void operate();
+
+	// ITrackedObject interface
+public:
+	virtual void add(IModelTrackedComponent *comp, int pos = -1) override;
+	virtual bool remove(IModelTrackedComponent *comp) override;
+	virtual void clear() override;
+	virtual IModelTrackedComponent *getChild(int index) override;
+    virtual IModelTrackedComponent *getValidChild(int index) override;
+	virtual IModelTrackedComponent *getLastChild() override;
+
+    virtual int size() override;
+    virtual int validCount() override;
+
+    virtual QList<IModelTrackedComponent*> getChildNodes() override {
+        return _TrackedComponents;
+    }
+    virtual void setChildNodes(QList<IModelTrackedComponent*> n) override {
+        _TrackedComponents = n;
+    }
+   virtual  bool hasChildNodes() override {
+        return !_TrackedComponents.empty();
+    }
+
+
+protected:
+	QList<IModelTrackedComponent*> _TrackedComponents;
+
+	QString name;
+};
+
diff --git a/Src/util/misc.cpp b/Src/Utility/misc.cpp
similarity index 95%
rename from Src/util/misc.cpp
rename to Src/Utility/misc.cpp
index 19601e8890f4a71cde7356aa77143125b4d7fd95..f2479db89d2fca6497b96eab27700a24a5377aeb 100644
--- a/Src/util/misc.cpp
+++ b/Src/Utility/misc.cpp
@@ -1,4 +1,4 @@
-#include "util/misc.h"
+#include "Utility/misc.h"
 
 #include <QPoint>             // QPoint
 #include <QString>       
diff --git a/Src/util/misc.h b/Src/Utility/misc.h
similarity index 100%
rename from Src/util/misc.h
rename to Src/Utility/misc.h