diff --git a/src/main.cpp b/src/main.cpp
index c4f7e71..b5d7cf2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -127,19 +127,17 @@
                 auto& value = it->second;
                 if (type == UnitType::service)
                 {
-                    std::get<static_cast<int>(monitorElement::unitName)>(
-                        value) = unitName;
-                    std::get<static_cast<int>(monitorElement::instanceName)>(
-                        value) = instanceName;
                     std::get<static_cast<int>(monitorElement::serviceObjPath)>(
-                        value) = objectPath;
+                        value) = objectPath.str;
                 }
                 else if (type == UnitType::socket)
                 {
                     std::get<static_cast<int>(monitorElement::socketObjPath)>(
-                        value) = objectPath;
+                        value) = objectPath.str;
                 }
+                continue;
             }
+            // If not grouped with any existing entry, create a new one
             if (type == UnitType::service)
             {
                 unitsToMonitor.emplace(instantiatedUnitName,
@@ -148,9 +146,9 @@
             }
             else if (type == UnitType::socket)
             {
-                unitsToMonitor.emplace(
-                    instantiatedUnitName,
-                    std::make_tuple("", "", "", objectPath.str));
+                unitsToMonitor.emplace(instantiatedUnitName,
+                                       std::make_tuple(unitName, instanceName,
+                                                       "", objectPath.str));
             }
         }
     }
