diff --git a/include/EntityManager.hpp b/include/EntityManager.hpp
index 4b5758a..540d9a6 100644
--- a/include/EntityManager.hpp
+++ b/include/EntityManager.hpp
@@ -31,7 +31,7 @@
 #include <string>
 
 // paths - > interfaces -> properties
-using DBusProbeObjectT = boost::container::flat_map<
+using MapperGetSubTreeResponse = boost::container::flat_map<
     std::string,
     boost::container::flat_map<
         std::string,
@@ -81,7 +81,7 @@
     sdbusplus::asio::object_server& objServer;
     std::function<void()> _callback;
     bool _passed = false;
-    DBusProbeObjectT dbusProbeObjects;
+    MapperGetSubTreeResponse dbusProbeObjects;
     std::vector<std::string> passedProbes;
 };
 
@@ -91,12 +91,14 @@
     PerformProbe(
         const std::vector<std::string>& probeCommand,
         std::shared_ptr<PerformScan>& scanPtr,
-        std::function<void(FoundDeviceT&, const DBusProbeObjectT&)>&& callback);
+        std::function<void(FoundDeviceT&, const MapperGetSubTreeResponse&)>&&
+            callback);
     virtual ~PerformProbe();
 
     std::vector<std::string> _probeCommand;
     std::shared_ptr<PerformScan> scan;
-    std::function<void(FoundDeviceT&, const DBusProbeObjectT&)> _callback;
+    std::function<void(FoundDeviceT&, const MapperGetSubTreeResponse&)>
+        _callback;
 };
 
 inline void logDeviceAdded(const nlohmann::json& record)
diff --git a/src/PerformProbe.cpp b/src/PerformProbe.cpp
index bd3e1b3..adf45d6 100644
--- a/src/PerformProbe.cpp
+++ b/src/PerformProbe.cpp
@@ -214,7 +214,8 @@
 PerformProbe::PerformProbe(
     const std::vector<std::string>& probeCommand,
     std::shared_ptr<PerformScan>& scanPtr,
-    std::function<void(FoundDeviceT&, const DBusProbeObjectT&)>&& callback) :
+    std::function<void(FoundDeviceT&, const MapperGetSubTreeResponse&)>&&
+        callback) :
     _probeCommand(probeCommand),
     scan(scanPtr), _callback(std::move(callback))
 {}
diff --git a/src/PerformScan.cpp b/src/PerformScan.cpp
index 78d1cad..dd3e3d4 100644
--- a/src/PerformScan.cpp
+++ b/src/PerformScan.cpp
@@ -300,8 +300,9 @@
         auto thisRef = shared_from_this();
         auto probePointer = std::make_shared<PerformProbe>(
             probeCommand, thisRef,
-            [&, recordPtr, probeName](FoundDeviceT& foundDevices,
-                                      const DBusProbeObjectT& allInterfaces) {
+            [&, recordPtr,
+             probeName](FoundDeviceT& foundDevices,
+                        const MapperGetSubTreeResponse& allInterfaces) {
                 _passed = true;
                 std::set<nlohmann::json> usedNames;
                 passedProbes.push_back(probeName);
@@ -377,7 +378,7 @@
 
                 std::optional<std::string> replaceStr;
 
-                DBusProbeObjectT::mapped_type emptyInterfaces;
+                MapperGetSubTreeResponse::mapped_type emptyInterfaces;
                 boost::container::flat_map<std::string, BasicVariantType>
                     emptyProps;
                 emptyInterfaces.emplace(std::string{}, emptyProps);
@@ -395,8 +396,8 @@
                     // interface, such as if it was just TRUE, then
                     // templateCharReplace will just get passed in an empty
                     // map.
-                    const DBusProbeObjectT::mapped_type* allInterfacesOnPath =
-                        &emptyInterfaces;
+                    const MapperGetSubTreeResponse::mapped_type*
+                        allInterfacesOnPath = &emptyInterfaces;
 
                     auto ifacesIt = allInterfaces.find(path);
                     if (ifacesIt != allInterfaces.end())
