diff --git a/src/PerformScan.cpp b/src/PerformScan.cpp
index 0998f22..5655485 100644
--- a/src/PerformScan.cpp
+++ b/src/PerformScan.cpp
@@ -391,13 +391,13 @@
                     // interface, such as if it was just TRUE, then
                     // templateCharReplace will just get passed in an empty
                     // map.
-                    const MapperGetSubTreeResponse::mapped_type*
-                        allInterfacesOnPath = &emptyInterfaces;
+                    const MapperGetSubTreeResponse::mapped_type* dbusObject =
+                        &emptyInterfaces;
 
                     auto ifacesIt = allInterfaces.find(path);
                     if (ifacesIt != allInterfaces.end())
                     {
-                        allInterfacesOnPath = &ifacesIt->second;
+                        dbusObject = &ifacesIt->second;
                     }
 
                     nlohmann::json record = *recordPtr;
@@ -416,9 +416,8 @@
 
                     nlohmann::json copyForName = {{"Name", getName.value()}};
                     nlohmann::json::iterator copyIt = copyForName.begin();
-                    std::optional<std::string> replaceVal =
-                        templateCharReplace(copyIt, *allInterfacesOnPath,
-                                            foundDeviceIdx, replaceStr);
+                    std::optional<std::string> replaceVal = templateCharReplace(
+                        copyIt, *dbusObject, foundDeviceIdx, replaceStr);
 
                     if (!replaceStr && replaceVal)
                     {
@@ -427,7 +426,7 @@
                             replaceStr = replaceVal;
                             copyForName = {{"Name", getName.value()}};
                             copyIt = copyForName.begin();
-                            templateCharReplace(copyIt, *allInterfacesOnPath,
+                            templateCharReplace(copyIt, *dbusObject,
                                                 foundDeviceIdx, replaceStr);
                         }
                     }
@@ -450,7 +449,7 @@
 
                             continue; // already covered above
                         }
-                        templateCharReplace(keyPair, *allInterfacesOnPath,
+                        templateCharReplace(keyPair, *dbusObject,
                                             foundDeviceIdx, replaceStr);
                     }
 
@@ -472,7 +471,7 @@
                              keyPair != expose.end(); keyPair++)
                         {
 
-                            templateCharReplace(keyPair, *allInterfacesOnPath,
+                            templateCharReplace(keyPair, *dbusObject,
                                                 foundDeviceIdx, replaceStr);
 
                             bool isBind =
