diff --git a/app/src/main.cpp b/app/src/main.cpp
index a702c0219fd173d6a2ed3b00740b59896e85e86f..e6c228c2964fb470b73bea8df5603877082b6eb1 100644
--- a/app/src/main.cpp
+++ b/app/src/main.cpp
@@ -8,9 +8,6 @@
 #include <QDebug>
 
 #include "handlers/confighandler.h"
-//#include "handlers/systemhandler.h"
-//#include "handlers/ocshandler.h"
-//#include "handlers/itemhandler.h"
 #include "websockets/websocketserver.h"
 
 int main(int argc, char *argv[])
@@ -18,7 +15,7 @@ int main(int argc, char *argv[])
     // Init
     QCoreApplication app(argc, argv);
 
-    ConfigHandler *configHandler = new ConfigHandler(&app);
+    ConfigHandler *configHandler = new ConfigHandler();
     QJsonObject appConfigApplication = configHandler->getAppConfigApplication();
 
     app.setApplicationName(appConfigApplication["name"].toString());
@@ -48,7 +45,7 @@ int main(int argc, char *argv[])
     int port = clParser.value(clOptionPort).toInt();
 
     // Setup websocket server
-    WebSocketServer *wsServer = new WebSocketServer(appConfigApplication["id"].toString(), port, &app);
+    WebSocketServer *wsServer = new WebSocketServer(configHandler, appConfigApplication["id"].toString(), port, &app);
     QObject::connect(wsServer, &WebSocketServer::stopped, &app, &QCoreApplication::quit);
 
     if (wsServer->start()) {
diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp
index 5e00aa5f3492fda62848f2cbba58a29178aa5bba..897d8ebdbc30c49591a98cbc06e644d649ca64a8 100644
--- a/app/src/websockets/websocketserver.cpp
+++ b/app/src/websockets/websocketserver.cpp
@@ -6,12 +6,22 @@
 
 #include "qtlib_json.h"
 
-WebSocketServer::WebSocketServer(const QString &serverName, quint16 serverPort, QObject *parent)
-    : QObject(parent), serverName_(serverName), serverPort_(serverPort)
+#include "handlers/confighandler.h"
+#include "handlers/systemhandler.h"
+#include "handlers/ocshandler.h"
+#include "handlers/itemhandler.h"
+
+WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &serverName, quint16 serverPort, QObject *parent)
+    : QObject(parent), configHandler_(configHandler), serverName_(serverName), serverPort_(serverPort)
 {
     wsServer_ = new QWebSocketServer(serverName_, QWebSocketServer::NonSecureMode, this);
     connect(wsServer_, &QWebSocketServer::newConnection, this, &WebSocketServer::wsNewConnection);
     connect(wsServer_, &QWebSocketServer::closed, this, &WebSocketServer::stopped);
+
+    configHandler_->setParent(this);
+    systemHandler_ = new SystemHandler(this);
+    ocsHandler_ = new OcsHandler(configHandler_, this);
+    itemHandler_ = new ItemHandler(configHandler_, this);
 }
 
 WebSocketServer::~WebSocketServer()
diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h
index 899d5dc9d9c7cf2bab69fe1c96a0632521583e91..d15f56305ac86119af2566aa6f00c40c6913b534 100644
--- a/app/src/websockets/websocketserver.h
+++ b/app/src/websockets/websocketserver.h
@@ -7,24 +7,30 @@
 class QWebSocketServer;
 class QWebSocket;
 
+class ConfigHandler;
+class SystemHandler;
+class OcsHandler;
+class ItemHandler;
+
 class WebSocketServer : public QObject
 {
     Q_OBJECT
 
 public:
-    explicit WebSocketServer(const QString &serverName, quint16 serverPort = 0, QObject *parent = 0);
+    explicit WebSocketServer(ConfigHandler *configHandler, const QString &serverName = "WebSocketServer", quint16 serverPort = 0, QObject *parent = 0);
     ~WebSocketServer();
 
+signals:
+    void started();
+    void stopped();
+
+public slots:
     bool start();
     void stop();
     bool isError();
     QString errorString();
     QUrl serverUrl();
 
-signals:
-    void started();
-    void stopped();
-
 private slots:
     void wsNewConnection();
     void wsDisconnected();
@@ -38,4 +44,9 @@ private:
     quint16 serverPort_;
     QWebSocketServer *wsServer_;
     QList<QWebSocket *> wsClients_;
+
+    ConfigHandler *configHandler_;
+    SystemHandler *systemHandler_;
+    OcsHandler *ocsHandler_;
+    ItemHandler *itemHandler_;
 };