diff --git a/manager.cpp b/manager.cpp
index 276a5a5..94b4af1 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -70,6 +70,11 @@
 #endif
 }
 
+void Manager::erase(EntryID id)
+{
+    entries.erase(id);
+}
+
 void Manager::addInterface(const std::string& objectPath, InterfaceType type,
                            std::experimental::any& object)
 {
@@ -140,13 +145,7 @@
 
     if (i != interfaces.end())
     {
-        auto id = getEntryID(path);
-
-        auto entry = entries.find(id);
-        if (entry != entries.end())
-        {
-            entries.erase(entry);
-        }
+        erase(getEntryID(path));
     }
 }
 }
diff --git a/manager.hpp b/manager.hpp
index ca5e16b..b3891ac 100644
--- a/manager.hpp
+++ b/manager.hpp
@@ -43,6 +43,18 @@
     explicit Manager(sdbusplus::bus::bus& bus);
 
   private:
+    using EntryID = uint32_t;
+    using InterfaceMap = std::map<InterfaceType, std::experimental::any>;
+    using EntryMap = std::map<EntryID, InterfaceMap>;
+
+    /**
+     * Deletes the entry and any child entries with
+     * the specified ID.
+     *
+     * @param[in] id - the entry ID
+     */
+    void erase(EntryID id);
+
     /**
      * The callback for an interfaces added signal
      *
@@ -130,10 +142,6 @@
      */
     sdbusplus::bus::match_t removeMatch;
 
-    using EntryID = uint32_t;
-    using InterfaceMap = std::map<InterfaceType, std::experimental::any>;
-    using EntryMap = std::map<EntryID, InterfaceMap>;
-
     /**
      * A map of the error log IDs to their IBM interface objects.
      * There may be multiple interfaces per ID.
