diff --git a/common/src/device.cpp b/common/src/device.cpp
index 2367213..9e2278d 100644
--- a/common/src/device.cpp
+++ b/common/src/device.cpp
@@ -164,7 +164,8 @@
 {
     softwarePending->setActivation(ActivationInterface::Activations::Ready);
 
-    softwarePending->setVersion(componentVersion);
+    softwarePending->setVersion(componentVersion,
+                                softwareCurrent->getPurpose());
 
     std::string objPath = softwarePending->objectPath;
 
diff --git a/common/src/software.cpp b/common/src/software.cpp
index faa377a..31b2b75 100644
--- a/common/src/software.cpp
+++ b/common/src/software.cpp
@@ -123,10 +123,13 @@
     co_return;
 }
 
-void Software::setVersion(const std::string& versionStr)
+void Software::setVersion(const std::string& versionStr,
+                          SoftwareVersion::VersionPurpose versionPurpose)
 {
     debug("{SWID}: set version {VERSION}", "SWID", swid, "VERSION", versionStr);
 
+    const bool emitSignal = !version;
+
     if (!version)
     {
         version =
@@ -134,6 +137,17 @@
     }
 
     version->version(versionStr);
+    version->purpose(versionPurpose);
+
+    if (emitSignal)
+    {
+        version->emit_added();
+    }
+}
+
+SoftwareVersion::VersionPurpose Software::getPurpose()
+{
+    return version->purpose();
 }
 
 void Software::setActivationBlocksTransition(bool enabled)
diff --git a/common/src/software_manager.cpp b/common/src/software_manager.cpp
index b95fcab..77ee0b1 100644
--- a/common/src/software_manager.cpp
+++ b/common/src/software_manager.cpp
@@ -7,6 +7,7 @@
 #include <sdbusplus/bus.hpp>
 #include <xyz/openbmc_project/Association/Definitions/server.hpp>
 #include <xyz/openbmc_project/ObjectMapper/client.hpp>
+#include <xyz/openbmc_project/Software/Version/client.hpp>
 #include <xyz/openbmc_project/State/Host/client.hpp>
 
 #include <cstdint>
@@ -17,21 +18,18 @@
 
 SoftwareManager::SoftwareManager(sdbusplus::async::context& ctx,
                                  const std::string& serviceNameSuffix) :
-    ctx(ctx), serviceNameSuffix(serviceNameSuffix), manager(ctx, "/")
-{
-    debug("initialized SoftwareManager");
-}
-
-std::string SoftwareManager::setupBusName()
+    ctx(ctx), serviceNameSuffix(serviceNameSuffix),
+    manager(ctx, sdbusplus::client::xyz::openbmc_project::software::Version<>::
+                     namespace_path)
 {
     const std::string serviceNameFull =
         "xyz.openbmc_project.Software." + serviceNameSuffix;
 
     debug("requesting dbus name {BUSNAME}", "BUSNAME", serviceNameFull);
 
-    ctx.get_bus().request_name(serviceNameFull.c_str());
+    ctx.request_name(serviceNameFull.c_str());
 
-    return serviceNameFull;
+    debug("Initialized SoftwareManager");
 }
 
 // NOLINTBEGIN(readability-static-accessed-through-instance)
@@ -133,6 +131,4 @@
     }
 
     debug("[config] done with initial configuration");
-
-    setupBusName();
 }
