diff --git a/version.hpp b/version.hpp
old mode 100755
new mode 100644
index cbc2bd7..3d17213
--- a/version.hpp
+++ b/version.hpp
@@ -2,7 +2,6 @@
 
 #include <sdbusplus/bus.hpp>
 #include "xyz/openbmc_project/Software/Version/server.hpp"
-#include "xyz/openbmc_project/Object/Delete/server.hpp"
 #include "xyz/openbmc_project/Common/FilePath/server.hpp"
 #include <functional>
 
@@ -17,7 +16,6 @@
 
 using VersionInherit = sdbusplus::server::object::object<
     sdbusplus::xyz::openbmc_project::Software::server::Version,
-    sdbusplus::xyz::openbmc_project::Object::server::Delete,
     sdbusplus::xyz::openbmc_project::Common::server::FilePath>;
 
 /** @class Version
@@ -35,18 +33,14 @@
          * @param[in] versionId      - The version identifier
          * @param[in] versionPurpose - The version purpose
          * @param[in] filePath       - The image filesystem path
-         * @param[in] callback       - The parent's erase callback
          */
         Version(sdbusplus::bus::bus& bus,
                 const std::string& objPath,
                 const std::string& versionId,
                 VersionPurpose versionPurpose,
-                const std::string& filePath,
-                eraseFunc callback) : VersionInherit(
+                const std::string& filePath) : VersionInherit(
                     bus, (objPath).c_str(), true)
         {
-            // Bind erase method
-            eraseCallback = callback;
             // Set properties.
             purpose(versionPurpose);
             version(versionId);
@@ -79,21 +73,8 @@
          * @return The version identifier.
          */
         static std::string getBMCVersion(const std::string& releaseFilePath);
-
-        /**
-         * @brief Delete the d-bus object and image.
-         */
-        void delete_() override;
-
-
-    private:
-        /**
-         * @brief The parent's erase callback.
-         */
-        eraseFunc eraseCallback;
 };
 
 } // namespace manager
 } // namespace software
 } // namespace phosphor
-
