diff --git a/src/IntrusionSensorMain.cpp b/src/IntrusionSensorMain.cpp
index fcf55d2..caa6f93 100644
--- a/src/IntrusionSensorMain.cpp
+++ b/src/IntrusionSensorMain.cpp
@@ -72,11 +72,10 @@
         nullptr;
 
     // Get bus and addr of matched configuration
-    for (const std::pair<sdbusplus::message::object_path, SensorData>& sensor :
-         sensorConfigurations)
+    for (const auto& [path, cfgData] : sensorConfigurations)
     {
         baseConfiguration = nullptr;
-        sensorData = &(sensor.second);
+        sensorData = &cfgData;
 
         // match sensor type
         auto sensorBase = sensorData->find(sensorType);
@@ -184,15 +183,14 @@
         dbusConnection, [](const ManagedObjectType& sensorConfigurations) {
             // Get NIC name and save to map
             lanInfoMap.clear();
-            for (const std::pair<sdbusplus::message::object_path, SensorData>&
-                     sensor : sensorConfigurations)
+            for (const auto& [path, cfgData] : sensorConfigurations)
             {
                 const std::pair<std::string, SensorBaseConfigMap>*
                     baseConfiguration = nullptr;
 
                 // find base configuration
-                auto sensorBase = sensor.second.find(nicType);
-                if (sensorBase == sensor.second.end())
+                auto sensorBase = cfgData.find(nicType);
+                if (sensorBase == cfgData.end())
                 {
                     continue;
                 }
