diff --git a/item_updater.hpp b/item_updater.hpp
index 1f3c0f1..e1a8d3f 100644
--- a/item_updater.hpp
+++ b/item_updater.hpp
@@ -3,6 +3,7 @@
 #include "activation.hpp"
 #include "item_updater_helper.hpp"
 #include "msl_verify.hpp"
+#include "update_manager.hpp"
 #include "version.hpp"
 #include "xyz/openbmc_project/Collection/DeleteAll/server.hpp"
 
@@ -37,6 +38,7 @@
 using VersionClass = phosphor::software::manager::Version;
 using AssociationList =
     std::vector<std::tuple<std::string, std::string, std::string>>;
+using UpdateManager = phosphor::software::update::Manager;
 
 /** @class MinimumVersion
  *  @brief OpenBMC MinimumVersion implementation.
@@ -80,8 +82,8 @@
                 bool useUpdateDBusInterface = true) :
         ItemUpdaterInherit(ctx.get_bus(), path.c_str(),
                            ItemUpdaterInherit::action::defer_emit),
-        useUpdateDBusInterface(useUpdateDBusInterface), bus(ctx.get_bus()),
-        helper(bus)
+        useUpdateDBusInterface(useUpdateDBusInterface), ctx(ctx),
+        bus(ctx.get_bus()), helper(bus)
     {
         if (!useUpdateDBusInterface)
         {
@@ -171,6 +173,13 @@
                                 ActivationIntf::Activations status);
 
     /**
+     * @brief Create the Update object
+     * @param[in] id - The unique identifier for the update.
+     * @param[in] path - The object path for the update object.
+     */
+    void createUpdateObject(const std::string& id, const std::string& path);
+
+    /**
      * @brief Erase specified entry D-Bus object
      *        if Action property is not set to Active
      *
@@ -302,6 +311,9 @@
      */
     void createFunctionalAssociation(const std::string& path);
 
+    /** @brief D-Bus context */
+    sdbusplus::async::context& ctx;
+
     /** @brief Persistent sdbusplus D-Bus bus connection. */
     sdbusplus::bus_t& bus;
 
@@ -344,6 +356,9 @@
     /** @brief Persistent MinimumVersion D-Bus object */
     std::unique_ptr<MinimumVersion> minimumVersionObject;
 
+    /** @brief Persistent map of Update D-Bus objects and their SwIds */
+    std::map<std::string, std::unique_ptr<UpdateManager>> updateManagers;
+
 #ifdef HOST_BIOS_UPGRADE
     /** @brief Create the BIOS object without knowing the version.
      *
