diff --git a/activation.cpp b/activation.cpp
index d9ee2d0..b5fe199 100644
--- a/activation.cpp
+++ b/activation.cpp
@@ -27,7 +27,7 @@
 namespace updater
 {
 
-namespace softwareServer = sdbusplus::xyz::openbmc_project::Software::server;
+namespace softwareServer = sdbusplus::server::xyz::openbmc_project::software;
 
 PHOSPHOR_LOG2_USING;
 using namespace phosphor::logging;
@@ -35,7 +35,7 @@
     sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure;
 
 #ifdef WANT_SIGNATURE_VERIFY
-namespace control = sdbusplus::xyz::openbmc_project::Control::server;
+namespace control = sdbusplus::server::xyz::openbmc_project::control;
 #endif
 
 void Activation::subscribeToSystemdSignals()
diff --git a/activation.hpp b/activation.hpp
index 94cc1bb..04562ea 100644
--- a/activation.hpp
+++ b/activation.hpp
@@ -30,15 +30,15 @@
 using AssociationList =
     std::vector<std::tuple<std::string, std::string, std::string>>;
 using ActivationInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Software::server::Activation,
-    sdbusplus::xyz::openbmc_project::Association::server::Definitions>;
+    sdbusplus::server::xyz::openbmc_project::software::Activation,
+    sdbusplus::server::xyz::openbmc_project::association::Definitions>;
 using ActivationBlocksTransitionInherit =
     sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Software::
                                     server::ActivationBlocksTransition>;
 using RedundancyPriorityInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Software::server::RedundancyPriority>;
+    sdbusplus::server::xyz::openbmc_project::software::RedundancyPriority>;
 using ActivationProgressInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Software::server::ActivationProgress>;
+    sdbusplus::server::xyz::openbmc_project::software::ActivationProgress>;
 
 constexpr auto applyTimeImmediate =
     "xyz.openbmc_project.Software.ApplyTime.RequestedApplyTimes.Immediate";
@@ -185,7 +185,7 @@
      */
     Activation(sdbusplus::bus_t& bus, const std::string& path,
                ItemUpdater& parent, std::string& versionId,
-               sdbusplus::xyz::openbmc_project::Software::server::Activation::
+               sdbusplus::server::xyz::openbmc_project::software::Activation::
                    Activations activationStatus,
                AssociationList& assocs) :
         ActivationInherit(bus, path.c_str(),
diff --git a/download_manager.hpp b/download_manager.hpp
index a947747..9acba12 100644
--- a/download_manager.hpp
+++ b/download_manager.hpp
@@ -14,7 +14,7 @@
 {
 
 using DownloadInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Common::server::TFTP>;
+    sdbusplus::server::xyz::openbmc_project::common::TFTP>;
 
 /** @class Download
  *  @brief OpenBMC download software management implementation.
diff --git a/image_verify.hpp b/image_verify.hpp
index 97c1e2f..fbea422 100644
--- a/image_verify.hpp
+++ b/image_verify.hpp
@@ -28,7 +28,7 @@
 using KeyHashPathPair = std::pair<HashFilePath, PublicKeyPath>;
 using AvailableKeyTypes = std::set<Key_t>;
 using VersionPurpose =
-    sdbusplus::xyz::openbmc_project::Software::server::Version::VersionPurpose;
+    sdbusplus::server::xyz::openbmc_project::software::Version::VersionPurpose;
 
 // RAII support for openSSL functions.
 using BIO_MEM_Ptr = std::unique_ptr<BIO, decltype(&::BIO_free)>;
diff --git a/item_updater.cpp b/item_updater.cpp
index 5613a49..4b170db 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -29,8 +29,8 @@
 {
 
 // When you see server:: you know we're referencing our base class
-namespace server = sdbusplus::xyz::openbmc_project::Software::server;
-namespace control = sdbusplus::xyz::openbmc_project::Control::server;
+namespace server = sdbusplus::server::xyz::openbmc_project::software;
+namespace control = sdbusplus::server::xyz::openbmc_project::control;
 
 PHOSPHOR_LOG2_USING;
 using namespace phosphor::logging;
diff --git a/item_updater.hpp b/item_updater.hpp
index c50d9de..316113a 100644
--- a/item_updater.hpp
+++ b/item_updater.hpp
@@ -21,10 +21,10 @@
 {
 
 using ItemUpdaterInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Common::server::FactoryReset,
-    sdbusplus::xyz::openbmc_project::Control::server::FieldMode,
-    sdbusplus::xyz::openbmc_project::Association::server::Definitions,
-    sdbusplus::xyz::openbmc_project::Collection::server::DeleteAll>;
+    sdbusplus::server::xyz::openbmc_project::common::FactoryReset,
+    sdbusplus::server::xyz::openbmc_project::control::FieldMode,
+    sdbusplus::server::xyz::openbmc_project::association::Definitions,
+    sdbusplus::server::xyz::openbmc_project::collection::DeleteAll>;
 
 namespace MatchRules = sdbusplus::bus::match::rules;
 using VersionClass = phosphor::software::manager::Version;
diff --git a/mmc/flash.cpp b/mmc/flash.cpp
index 3bc2ab8..de47e83 100644
--- a/mmc/flash.cpp
+++ b/mmc/flash.cpp
@@ -12,7 +12,7 @@
 namespace updater
 {
 
-namespace softwareServer = sdbusplus::xyz::openbmc_project::Software::server;
+namespace softwareServer = sdbusplus::server::xyz::openbmc_project::software;
 
 void Activation::flashWrite()
 {
diff --git a/serialize.hpp b/serialize.hpp
index f447e73..bdfc6d1 100644
--- a/serialize.hpp
+++ b/serialize.hpp
@@ -14,7 +14,7 @@
 {
 
 using VersionPurpose =
-    sdbusplus::xyz::openbmc_project::Software::server::Version::VersionPurpose;
+    sdbusplus::server::xyz::openbmc_project::software::Version::VersionPurpose;
 
 /** @brief Serialization function - stores priority information to file
  *  @param[in] flashId - The flash id of the version for which to store
diff --git a/static/flash.cpp b/static/flash.cpp
index 74316d1..a478644 100644
--- a/static/flash.cpp
+++ b/static/flash.cpp
@@ -80,9 +80,8 @@
     }
     else
     {
-        namespace softwareServer =
-            sdbusplus::xyz::openbmc_project::Software::server;
-        Activation::activation(softwareServer::Activation::Activations::Failed);
+        Activation::activation(sdbusplus::server::xyz::openbmc_project::
+                                   software::Activation::Activations::Failed);
     }
 #endif
 }
diff --git a/ubi/flash.cpp b/ubi/flash.cpp
index 15c5492..64c9ea5 100644
--- a/ubi/flash.cpp
+++ b/ubi/flash.cpp
@@ -10,7 +10,7 @@
 namespace updater
 {
 
-namespace softwareServer = sdbusplus::xyz::openbmc_project::Software::server;
+namespace softwareServer = sdbusplus::server::xyz::openbmc_project::software;
 
 void Activation::flashWrite()
 {
diff --git a/version.hpp b/version.hpp
index 5c74f99..8a85ba9 100644
--- a/version.hpp
+++ b/version.hpp
@@ -22,12 +22,12 @@
 typedef std::function<void(std::string)> eraseFunc;
 
 using VersionInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Software::server::ExtendedVersion,
-    sdbusplus::xyz::openbmc_project::Software::server::Version,
-    sdbusplus::xyz::openbmc_project::Common::server::FilePath,
-    sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Compatible>;
+    sdbusplus::server::xyz::openbmc_project::software::ExtendedVersion,
+    sdbusplus::server::xyz::openbmc_project::software::Version,
+    sdbusplus::server::xyz::openbmc_project::common::FilePath,
+    sdbusplus::server::xyz::openbmc_project::inventory::decorator::Compatible>;
 using DeleteInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Object::server::Delete>;
+    sdbusplus::server::xyz::openbmc_project::object::Delete>;
 
 class Version;
 class Delete;
