diff --git a/src/cpuinfo_utils.cpp b/src/cpuinfo_utils.cpp
index a96235f..51136bb 100644
--- a/src/cpuinfo_utils.cpp
+++ b/src/cpuinfo_utils.cpp
@@ -28,9 +28,9 @@
 namespace cpu_info
 {
 
-using namespace sdbusplus::xyz::openbmc_project;
-using PowerState = State::server::Host::HostState;
-using OsState = State::OperatingSystem::server::Status::OSStatus;
+using namespace sdbusplus::server::xyz::openbmc_project;
+using PowerState = state::Host::HostState;
+using OsState = state::operating_system::Status::OSStatus;
 
 HostState hostState = HostState::off;
 static PowerState powerState = PowerState::Off;
@@ -86,7 +86,7 @@
 
 void updatePowerState(const std::string& newState)
 {
-    powerState = State::server::Host::convertHostStateFromString(newState);
+    powerState = state::Host::convertHostStateFromString(newState);
     updateHostState();
 }
 
@@ -115,9 +115,8 @@
 
     try
     {
-        osState =
-            State::OperatingSystem::server::Status::convertOSStatusFromString(
-                full_path);
+        osState = state::operating_system::Status::convertOSStatusFromString(
+            full_path);
     }
     catch (const sdbusplus::exception::InvalidEnumString& ex)
     {
@@ -285,7 +284,7 @@
     // Leak the returned match objects. We want them to run forever.
     subscribeToProperty(
         "xyz.openbmc_project.State.Host", "/xyz/openbmc_project/state/host0",
-        State::server::Host::interface, "CurrentHostState", updatePowerState);
+        state::Host::interface, "CurrentHostState", updatePowerState);
     subscribeToProperty("xyz.openbmc_project.Host.Misc.Manager",
                         "/xyz/openbmc_project/misc/platform_state",
                         "xyz.openbmc_project.State.Host.Misc", "CoreBiosDone",
diff --git a/src/dimm.cpp b/src/dimm.cpp
index 6102627..bb68d13 100644
--- a/src/dimm.cpp
+++ b/src/dimm.cpp
@@ -33,10 +33,10 @@
 #endif
 
 using DeviceType =
-    sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::DeviceType;
+    sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::DeviceType;
 
 using EccType =
-    sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::Ecc;
+    sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::Ecc;
 
 static constexpr uint16_t maxOldDimmSize = 0x7fff;
 void Dimm::memoryInfoUpdate(void)
@@ -142,13 +142,13 @@
 
 EccType Dimm::ecc(EccType value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::ecc(
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::ecc(
         value);
 }
 
 uint16_t Dimm::memoryDataWidth(uint16_t value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memoryDataWidth(value);
 }
 
@@ -172,7 +172,7 @@
 
 size_t Dimm::memorySizeInKB(size_t value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memorySizeInKB(value);
 }
 
@@ -202,7 +202,7 @@
 
 std::string Dimm::memoryDeviceLocator(std::string value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memoryDeviceLocator(value);
 }
 
@@ -221,7 +221,7 @@
 
 DeviceType Dimm::memoryType(DeviceType value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memoryType(value);
 }
 
@@ -241,13 +241,13 @@
 
 std::string Dimm::memoryTypeDetail(std::string value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memoryTypeDetail(value);
 }
 
 uint16_t Dimm::maxMemorySpeedInMhz(uint16_t value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         maxMemorySpeedInMhz(value);
 }
 
@@ -268,13 +268,13 @@
 
 std::string Dimm::manufacturer(std::string value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+    return sdbusplus::server::xyz::openbmc_project::inventory::decorator::
         Asset::manufacturer(value);
 }
 
 bool Dimm::present(bool value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::server::Item::present(
+    return sdbusplus::server::xyz::openbmc_project::inventory::Item::present(
         value);
 }
 
@@ -288,7 +288,7 @@
 
 std::string Dimm::serialNumber(std::string value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+    return sdbusplus::server::xyz::openbmc_project::inventory::decorator::
         Asset::serialNumber(value);
 }
 
@@ -305,31 +305,31 @@
 
 std::string Dimm::partNumber(std::string value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+    return sdbusplus::server::xyz::openbmc_project::inventory::decorator::
         Asset::partNumber(value);
 }
 
 std::string Dimm::locationCode(std::string value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+    return sdbusplus::server::xyz::openbmc_project::inventory::decorator::
         LocationCode::locationCode(value);
 }
 
 uint8_t Dimm::memoryAttributes(uint8_t value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memoryAttributes(value);
 }
 
 uint16_t Dimm::memoryConfiguredSpeedInMhz(uint16_t value)
 {
-    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm::
+    return sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::
         memoryConfiguredSpeedInMhz(value);
 }
 
 bool Dimm::functional(bool value)
 {
-    return sdbusplus::xyz::openbmc_project::State::Decorator::server::
+    return sdbusplus::server::xyz::openbmc_project::state::decorator::
         OperationalStatus::functional(value);
 }
 
diff --git a/src/mdrv2.cpp b/src/mdrv2.cpp
index 6fb5a40..373978a 100644
--- a/src/mdrv2.cpp
+++ b/src/mdrv2.cpp
@@ -387,7 +387,7 @@
     {
         value = smbiosDir.dirEntries;
     }
-    return sdbusplus::xyz::openbmc_project::Smbios::server::MDRV2::
+    return sdbusplus::server::xyz::openbmc_project::smbios::MDRV2::
         directoryEntries(value);
 }
 
diff --git a/src/speed_select.cpp b/src/speed_select.cpp
index 56c0ec8..fb92dd1 100644
--- a/src/speed_select.cpp
+++ b/src/speed_select.cpp
@@ -103,12 +103,12 @@
 }
 
 using BaseCurrentOperatingConfig =
-    sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Control::
-                                    Processor::server::CurrentOperatingConfig>;
+    sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                    control::processor::CurrentOperatingConfig>;
 
 using BaseOperatingConfig =
-    sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                    Item::Cpu::server::OperatingConfig>;
+    sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                    inventory::item::cpu::OperatingConfig>;
 
 class OperatingConfig : public BaseOperatingConfig
 {
diff --git a/src/system.cpp b/src/system.cpp
index c5c905e..1ebaf2c 100644
--- a/src/system.cpp
+++ b/src/system.cpp
@@ -61,11 +61,11 @@
         stream << std::setw(2) << static_cast<int>(systemInfo->uuid.node[4]);
         stream << std::setw(2) << static_cast<int>(systemInfo->uuid.node[5]);
 
-        return sdbusplus::xyz::openbmc_project::Common::server::UUID::uuid(
+        return sdbusplus::server::xyz::openbmc_project::common::UUID::uuid(
             stream.str());
     }
 
-    return sdbusplus::xyz::openbmc_project::Common::server::UUID::uuid(
+    return sdbusplus::server::xyz::openbmc_project::common::UUID::uuid(
         "00000000-0000-0000-0000-000000000000");
 }
 
@@ -145,8 +145,8 @@
             smbiosFile.close();
             phosphor::logging::log<phosphor::logging::level::ERR>(
                 "Find non-print char, delete the broken MDRV2 table file!");
-            return sdbusplus::xyz::openbmc_project::Inventory::Decorator::
-                server::Revision::version(result);
+            return sdbusplus::server::xyz::openbmc_project::inventory::
+                decorator::Revision::version(result);
         }
         result = tempS;
 
@@ -155,7 +155,7 @@
     }
     lg2::info("VERSION INFO - BIOS - {VER}", "VER", result);
 
-    return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::
+    return sdbusplus::server::xyz::openbmc_project::inventory::decorator::
         Revision::version(result);
 }
 
