diff --git a/src/Config.cpp b/src/Config.cpp
index e019b57c3880347d0af0f0065539ffd50dd0cbe6..63de37face8d3051717540ecd04a114389c8b3f9 100644
--- a/src/Config.cpp
+++ b/src/Config.cpp
@@ -30,13 +30,8 @@
 
 Config::Config(std::string configPath, std::string type)
     : type_(type), basePath_(configPath.substr(0, configPath.find_last_of('/'))),
-      configPath_(configPath)
+      configPath_(configPath), hwdIDs_(1)
 {
-    if (hwdIDs_.empty())
-    {
-        Config::HardwareID hwdID;
-        hwdIDs_.push_back(hwdID);
-    }
 }
 
 bool Config::readConfigFile(std::string configPath)
diff --git a/src/Data.cpp b/src/Data.cpp
index a6b54b42d4ffafd4b9a5ad8c166e7edec56d1b8d..3ca54fd3ce727c87fdd884389ec71a83cba2cef0 100644
--- a/src/Data.cpp
+++ b/src/Data.cpp
@@ -493,23 +493,6 @@ void Data::fillAllConfigs(std::string type)
     }
 }
 
-bool Data::fillConfig(std::shared_ptr<Config> config, std::string configPath, std::string type)
-{
-    config->type_ = type;
-    config->priority_ = 0;
-    config->freedriver_ = true;
-    config->basePath_ = configPath.substr(0, configPath.find_last_of('/'));
-    config->configPath_ = configPath;
-
-    // Add new HardwareIDs group to vector if vector is empty
-    if (config->hwdIDs_.empty())
-    {
-        config->hwdIDs_.emplace_back();
-    }
-
-    return config->readConfigFile(config->configPath_);
-}
-
 std::vector<std::string> Data::getRecursiveDirectoryFileList(const std::string& directoryPath,
         std::string onlyFilename)
 {
diff --git a/src/Data.hpp b/src/Data.hpp
index a4d4674c293a14c5533c46bcdaf445a3c9606d41..c96ccfe8039c6c8165f653fd92de45f308c1556e 100644
--- a/src/Data.hpp
+++ b/src/Data.hpp
@@ -61,7 +61,6 @@ public:
 
     void updateInstalledConfigData();
     void getAllDevicesOfConfig(std::shared_ptr<Config> config, std::vector<std::shared_ptr<Device>>& foundDevices);
-    bool fillConfig(std::shared_ptr<Config> config, std::string configPath, std::string type);
 
     std::vector<std::shared_ptr<Config>> getAllDependenciesToInstall(std::shared_ptr<Config> config);
     void getAllDependenciesToInstall(std::shared_ptr<Config> config,
diff --git a/src/Mhwd.cpp b/src/Mhwd.cpp
index f6934d292a7e66e0e20d96e86b33d6c00d3f0b53..1d04751c867e1c6d85c096441c9bbaa12f45fa47 100644
--- a/src/Mhwd.cpp
+++ b/src/Mhwd.cpp
@@ -1248,7 +1248,7 @@ int Mhwd::launch(int argc, char *argv[])
                     else
                     {
                         config_.reset(new Config(filepath, operationType));
-                        if (!data_.fillConfig(config_, filepath, operationType))
+                        if (!config_->readConfigFile(filepath))
                         {
                             printer_.printError("failed to read custom config '" + filepath + "'!");
                             return 1;