diff --git a/app/app.pri b/app/app.pri
index 0f601b3da985a52a1f6d90216a8ba9e385ac7299..a8c9eb3001284ff11500f8fd513bc4f7c0b794fe 100644
--- a/app/app.pri
+++ b/app/app.pri
@@ -1,3 +1,5 @@
+CONFIG += c++11
+
 QT += \
     core \
     gui \
diff --git a/app/src/handlers/confighandler.cpp b/app/src/handlers/confighandler.cpp
index 74271602d054885a853f83a6e32c60fe4660be75..b0c4964651174fda83b733e4eb501cbca9f60078 100644
--- a/app/src/handlers/confighandler.cpp
+++ b/app/src/handlers/confighandler.cpp
@@ -9,45 +9,51 @@ ConfigHandler::ConfigHandler(QObject *parent)
     : QObject(parent)
 {
     appConfig_ = qtlib::Config(":/configs");
+    importAppConfigApplication();
+    importAppConfigInstallTypes();
 }
 
-QJsonObject ConfigHandler::getAppConfigApplication()
+QJsonObject ConfigHandler::getAppConfigApplication() const
 {
-    if (appConfigApplication_.isEmpty()) {
-        appConfigApplication_ = appConfig_.get("application");
-    }
     return appConfigApplication_;
 }
 
-QJsonObject ConfigHandler::getAppConfigInstallTypes()
+QJsonObject ConfigHandler::getAppConfigInstallTypes() const
 {
-    if (appConfigInstallTypes_.isEmpty()) {
-        QJsonObject installTypes = appConfig_.get("install_types");
-        foreach (const QString &key, installTypes.keys()) {
-            QJsonObject installtype = installTypes[key].toObject();
-            installtype["destination"] = convertPathString(installtype["destination"].toString());
-            installtype["generic_destination"] = convertPathString(installtype["generic_destination"].toString());
-            installTypes[key] = installtype;
-        }
-        QJsonObject installTypesAlias = appConfig_.get("install_types_alias");
-        foreach (const QString &key, installTypesAlias.keys()) {
-            QJsonObject installTypeAlias = installTypesAlias[key].toObject();
-            QString baseKey = installTypeAlias["base"].toString();
-            if (installTypes.contains(baseKey)) {
-                QJsonObject installType = installTypes[baseKey].toObject();
-                installType["base"] = baseKey;
-                installType["name"] = installTypeAlias["name"].toString();
-                installTypes[key] = installType;
-            }
+    return appConfigInstallTypes_;
+}
+
+void ConfigHandler::importAppConfigApplication()
+{
+    appConfigApplication_ = appConfig_.get("application");
+}
+
+void ConfigHandler::importAppConfigInstallTypes()
+{
+    auto installTypes = appConfig_.get("install_types");
+    for (const auto &key : installTypes.keys()) {
+        auto installtype = installTypes[key].toObject();
+        installtype["destination"] = convertPathString(installtype["destination"].toString());
+        installtype["generic_destination"] = convertPathString(installtype["generic_destination"].toString());
+        installTypes[key] = installtype;
+    }
+    auto installTypesAlias = appConfig_.get("install_types_alias");
+    for (const auto &key : installTypesAlias.keys()) {
+        auto installTypeAlias = installTypesAlias[key].toObject();
+        auto baseKey = installTypeAlias["base"].toString();
+        if (installTypes.contains(baseKey)) {
+            auto installType = installTypes[baseKey].toObject();
+            installType["base"] = baseKey;
+            installType["name"] = installTypeAlias["name"].toString();
+            installTypes[key] = installType;
         }
-        appConfigInstallTypes_ = installTypes;
     }
-    return appConfigInstallTypes_;
+    appConfigInstallTypes_ = installTypes;
 }
 
-QString ConfigHandler::convertPathString(const QString &path)
+QString ConfigHandler::convertPathString(const QString &path) const
 {
-    QString newPath = path;
+    auto newPath = path;
     if (newPath.contains("$HOME")) {
         newPath.replace("$HOME", qtlib::Dir::homePath());
     }
diff --git a/app/src/handlers/confighandler.h b/app/src/handlers/confighandler.h
index 247afc85f936d325f4477afe8bf907a22403eb44..07c695136172eb52c5ffe7bbdd067cb10cb6ad0e 100644
--- a/app/src/handlers/confighandler.h
+++ b/app/src/handlers/confighandler.h
@@ -10,14 +10,16 @@ class ConfigHandler : public QObject
     Q_OBJECT
 
 public:
-    explicit ConfigHandler(QObject *parent = 0);
+    explicit ConfigHandler(QObject *parent = nullptr);
 
 public slots:
-    QJsonObject getAppConfigApplication();
-    QJsonObject getAppConfigInstallTypes();
+    QJsonObject getAppConfigApplication() const;
+    QJsonObject getAppConfigInstallTypes() const;
 
 private:
-    QString convertPathString(const QString &path);
+    void importAppConfigApplication();
+    void importAppConfigInstallTypes();
+    QString convertPathString(const QString &path) const;
 
     qtlib::Config appConfig_;
     QJsonObject appConfigApplication_;
diff --git a/app/src/handlers/ocsurlhandler.cpp b/app/src/handlers/ocsurlhandler.cpp
index 3527d7b7387b715d1fe92f04bd30356f1c26ff7a..29996c0b8c8e35348659876edb8520d8bd897384 100644
--- a/app/src/handlers/ocsurlhandler.cpp
+++ b/app/src/handlers/ocsurlhandler.cpp
@@ -39,15 +39,15 @@ void OcsUrlHandler::process()
         return;
     }
 
-    QString url = metadata_["url"].toString();
-    qtlib::NetworkResource *resource = new qtlib::NetworkResource(url, QUrl(url), true, this);
+    auto url = metadata_["url"].toString();
+    auto *resource = new qtlib::NetworkResource(url, QUrl(url), true, this);
     connect(resource, &qtlib::NetworkResource::downloadProgress, this, &OcsUrlHandler::downloadProgress);
     connect(resource, &qtlib::NetworkResource::finished, this, &OcsUrlHandler::networkResourceFinished);
     resource->get();
     emit started();
 }
 
-bool OcsUrlHandler::isValid()
+bool OcsUrlHandler::isValid() const
 {
     QString scheme = metadata_["scheme"].toString();
     QString command = metadata_["command"].toString();
@@ -66,9 +66,9 @@ bool OcsUrlHandler::isValid()
     return false;
 }
 
-void OcsUrlHandler::openDestination()
+void OcsUrlHandler::openDestination() const
 {
-    QString type = metadata_["type"].toString();
+    auto type = metadata_["type"].toString();
     QDesktopServices::openUrl(QUrl("file://" + configHandler_->getAppConfigInstallTypes()[type].toObject()["destination"].toString()));
 }
 
@@ -131,7 +131,7 @@ void OcsUrlHandler::saveDownloadedFile(qtlib::NetworkResource *resource)
 {
     QJsonObject result;
 
-    QString type = metadata_["type"].toString();
+    auto type = metadata_["type"].toString();
     qtlib::Dir destDir(configHandler_->getAppConfigInstallTypes()[type].toObject()["destination"].toString());
     destDir.make();
     qtlib::File destFile(destDir.path() + "/" + metadata_["filename"].toString());
@@ -166,7 +166,7 @@ void OcsUrlHandler::installDownloadedFile(qtlib::NetworkResource *resource)
     }
 
     qtlib::Package package(tempFile.path());
-    QString type = metadata_["type"].toString();
+    auto type = metadata_["type"].toString();
     qtlib::Dir destDir(configHandler_->getAppConfigInstallTypes()[type].toObject()["destination"].toString());
     destDir.make();
     qtlib::File destFile(destDir.path() + "/" + metadata_["filename"].toString());
diff --git a/app/src/handlers/ocsurlhandler.h b/app/src/handlers/ocsurlhandler.h
index 8c3f99da2d60069181862017af66386a97dfd797..38ed279847c1c9791f1025604bc9780203a49bab 100644
--- a/app/src/handlers/ocsurlhandler.h
+++ b/app/src/handlers/ocsurlhandler.h
@@ -14,7 +14,7 @@ class OcsUrlHandler : public QObject
     Q_OBJECT
 
 public:
-    explicit OcsUrlHandler(const QString &ocsUrl, ConfigHandler *configHandler, QObject *parent = 0);
+    explicit OcsUrlHandler(const QString &ocsUrl, ConfigHandler *configHandler, QObject *parent = nullptr);
 
 signals:
     void started();
@@ -27,8 +27,8 @@ public slots:
     QJsonObject metadata() const;
 
     void process();
-    bool isValid();
-    void openDestination();
+    bool isValid() const;
+    void openDestination() const;
 
 private slots:
     void networkResourceFinished(qtlib::NetworkResource *resource);
diff --git a/app/src/main.cpp b/app/src/main.cpp
index 3acb73c3b6296be24473469ddd9023d843d17859..32ce2ff144f41f3ee431ad5bea6c527ce68c91b3 100644
--- a/app/src/main.cpp
+++ b/app/src/main.cpp
@@ -18,8 +18,8 @@ int main(int argc, char *argv[])
     // Init
     QApplication app(argc, argv);
 
-    ConfigHandler *configHandler = new ConfigHandler();
-    QJsonObject appConfigApplication = configHandler->getAppConfigApplication();
+    auto *configHandler = new ConfigHandler();
+    auto appConfigApplication = configHandler->getAppConfigApplication();
 
     app.setApplicationName(appConfigApplication["name"].toString());
     app.setApplicationVersion(appConfigApplication["version"].toString());
@@ -41,17 +41,17 @@ int main(int argc, char *argv[])
     clParser.addPositionalArgument("OCS-URL", "OCS-URL that starts with ocs://");
     clParser.process(app);
 
-    QStringList args = clParser.positionalArguments();
+    auto args = clParser.positionalArguments();
 
     if (args.size() != 1) {
         clParser.showHelp(1);
     }
 
-    QString ocsUrl = args.at(0);
+    auto ocsUrl = QString(args.at(0));
 
     // Setup QML
     QQmlApplicationEngine qmlAppEngine;
-    QQmlContext *qmlContext = qmlAppEngine.rootContext();
+    auto *qmlContext = qmlAppEngine.rootContext();
     configHandler->setParent(&qmlAppEngine);
     qmlContext->setContextProperty("configHandler", configHandler);
     qmlContext->setContextProperty("ocsUrlHandler", new OcsUrlHandler(ocsUrl, configHandler, &qmlAppEngine));
diff --git a/ocs-url.pro b/ocs-url.pro
index 79396ec30b19855a38c01b45430aada70795700f..7a803e1ee31d577c9fdebb39d7f4e340b373c223 100644
--- a/ocs-url.pro
+++ b/ocs-url.pro
@@ -4,8 +4,6 @@ TARGET = ocs-url
 
 TEMPLATE = app
 
-CONFIG += c++11
-
 DEFINES += QT_DEPRECATED_WARNINGS
 
 DISTFILES += $${PWD}/README.md