diff --git a/image_manager.cpp b/image_manager.cpp
index 5242d8b..357d3c2 100644
--- a/image_manager.cpp
+++ b/image_manager.cpp
@@ -172,10 +172,7 @@
                                   objPath,
                                   version,
                                   purpose,
-                                  imageDirPath.string(),
-                                  std::bind(&Manager::erase,
-                                            this,
-                                            std::placeholders::_1))));
+                                  imageDirPath.string())));
 
     return 0;
 }
@@ -196,6 +193,29 @@
     this->versions.erase(entryId);
 }
 
+void Manager::removeVersion(sdbusplus::message::message& msg)
+{
+    namespace mesg = sdbusplus::message;
+
+    mesg::object_path objPath;
+
+    msg.read(objPath);
+    std::string path(std::move(objPath));
+
+    // Version id is the last item in the path
+    auto pos = path.rfind("/");
+    if (pos == std::string::npos)
+    {
+        log<level::INFO>("No version id found in object path",
+                        entry("OBJPATH=%s", path));
+        return;
+    }
+
+    auto versionId = path.substr(pos + 1);
+
+    erase(versionId);
+}
+
 int Manager::unTar(const std::string& tarFilePath,
                    const std::string& extractDirPath)
 {
