diff --git a/include/cpu.hpp b/include/cpu.hpp
index 7b6434e..6328393 100644
--- a/include/cpu.hpp
+++ b/include/cpu.hpp
@@ -32,17 +32,17 @@
 {
 
 using rev =
-    sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Revision;
+    sdbusplus::server::xyz::openbmc_project::inventory::decorator::Revision;
 using asset =
-    sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Asset;
+    sdbusplus::server::xyz::openbmc_project::inventory::decorator::Asset;
 using location =
-    sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::LocationCode;
+    sdbusplus::server::xyz::openbmc_project::inventory::decorator::LocationCode;
 using connector =
-    sdbusplus::xyz::openbmc_project::Inventory::Connector::server::Slot;
-using processor = sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu;
-using Item = sdbusplus::xyz::openbmc_project::Inventory::server::Item;
+    sdbusplus::server::xyz::openbmc_project::inventory::connector::Slot;
+using processor = sdbusplus::server::xyz::openbmc_project::inventory::item::Cpu;
+using Item = sdbusplus::server::xyz::openbmc_project::inventory::Item;
 using association =
-    sdbusplus::xyz::openbmc_project::Association::server::Definitions;
+    sdbusplus::server::xyz::openbmc_project::association::Definitions;
 
 // Definition follow smbios spec DSP0134 3.0.0
 static const std::map<uint8_t, const char*> familyTable = {
diff --git a/include/cpuinfo.hpp b/include/cpuinfo.hpp
index e4f4d76..2ac5b37 100644
--- a/include/cpuinfo.hpp
+++ b/include/cpuinfo.hpp
@@ -34,12 +34,12 @@
 
 /** \ todo add cpu interface to CPUInfo and consolidate with smbios service
  * using processor =
-    sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu;
+    sdbusplus::server::xyz::openbmc_project::inventory::item::Cpu;
 */
 
 using UniqueIdentifierBase =
-    sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                    Decorator::server::UniqueIdentifier>;
+    sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                    inventory::decorator::UniqueIdentifier>;
 
 struct CPUInfo : public UniqueIdentifierBase
 {
diff --git a/include/dimm.hpp b/include/dimm.hpp
index 2a02fb6..dbeb053 100644
--- a/include/dimm.hpp
+++ b/include/dimm.hpp
@@ -32,26 +32,26 @@
 {
 
 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;
 
 class Dimm :
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>,
+        sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm>,
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Asset>,
-    sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                    Decorator::server::LocationCode>,
+        sdbusplus::server::xyz::openbmc_project::inventory::decorator::Asset>,
+    sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                    inventory::decorator::LocationCode>,
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Inventory::Connector::server::Slot>,
+        sdbusplus::server::xyz::openbmc_project::inventory::connector::Slot>,
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Inventory::server::Item>,
+        sdbusplus::server::xyz::openbmc_project::inventory::Item>,
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Association::server::Definitions>,
-    sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::State::
-                                    Decorator::server::OperationalStatus>
+        sdbusplus::server::xyz::openbmc_project::association::Definitions>,
+    sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::state::
+                                    decorator::OperationalStatus>
 {
   public:
     Dimm() = delete;
@@ -66,25 +66,25 @@
          const std::string& motherboard) :
 
         sdbusplus::server::object_t<
-            sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>(
+            sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm>(
             bus, objPath.c_str()),
-        sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                        Decorator::server::Asset>(
+        sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                        inventory::decorator::Asset>(
             bus, objPath.c_str()),
-        sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                        Decorator::server::LocationCode>(
+        sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                        inventory::decorator::LocationCode>(
             bus, objPath.c_str()),
-        sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                        Connector::server::Slot>(
+        sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                        inventory::connector::Slot>(
             bus, objPath.c_str()),
         sdbusplus::server::object_t<
-            sdbusplus::xyz::openbmc_project::Inventory::server::Item>(
+            sdbusplus::server::xyz::openbmc_project::inventory::Item>(
             bus, objPath.c_str()),
         sdbusplus::server::object_t<
-            sdbusplus::xyz::openbmc_project::Association::server::Definitions>(
+            sdbusplus::server::xyz::openbmc_project::association::Definitions>(
             bus, objPath.c_str()),
-        sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::State::
-                                        Decorator::server::OperationalStatus>(
+        sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                        state::decorator::OperationalStatus>(
             bus, objPath.c_str()),
         dimmNum(dimmId), storage(smbiosTableStorage),
         motherboardPath(motherboard)
diff --git a/include/mdrv2.hpp b/include/mdrv2.hpp
index b4b5efe..c9396e2 100644
--- a/include/mdrv2.hpp
+++ b/include/mdrv2.hpp
@@ -61,7 +61,7 @@
 
 class MDRV2 :
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Smbios::server::MDRV2>
+        sdbusplus::server::xyz::openbmc_project::smbios::MDRV2>
 {
   public:
     MDRV2() = delete;
@@ -74,7 +74,7 @@
     MDRV2(sdbusplus::bus_t& bus, const char* path,
           boost::asio::io_context& io) :
         sdbusplus::server::object_t<
-            sdbusplus::xyz::openbmc_project::Smbios::server::MDRV2>(bus, path),
+            sdbusplus::server::xyz::openbmc_project::smbios::MDRV2>(bus, path),
         bus(bus), timer(io), smbiosInterface(getObjectServer().add_interface(
                                  smbiosPath, smbiosInterfaceName))
     {
diff --git a/include/pcieslot.hpp b/include/pcieslot.hpp
index d3c9588..f984650 100644
--- a/include/pcieslot.hpp
+++ b/include/pcieslot.hpp
@@ -18,18 +18,18 @@
 {
 
 using PCIeSlot =
-    sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot;
-using PCIeGeneration = sdbusplus::xyz::openbmc_project::Inventory::Item::
-    server::PCIeSlot::Generations;
-using PCIeType = sdbusplus::xyz::openbmc_project::Inventory::Item::server::
+    sdbusplus::server::xyz::openbmc_project::inventory::item::PCIeSlot;
+using PCIeGeneration = sdbusplus::server::xyz::openbmc_project::inventory::
+    item::PCIeSlot::Generations;
+using PCIeType = sdbusplus::server::xyz::openbmc_project::inventory::item::
     PCIeSlot::SlotTypes;
 using embedded =
-    sdbusplus::xyz::openbmc_project::Inventory::Connector::server::Embedded;
+    sdbusplus::server::xyz::openbmc_project::inventory::connector::Embedded;
 using location =
-    sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::LocationCode;
-using item = sdbusplus::xyz::openbmc_project::Inventory::server::Item;
+    sdbusplus::server::xyz::openbmc_project::inventory::decorator::LocationCode;
+using item = sdbusplus::server::xyz::openbmc_project::inventory::Item;
 using association =
-    sdbusplus::xyz::openbmc_project::Association::server::Definitions;
+    sdbusplus::server::xyz::openbmc_project::association::Definitions;
 
 class Pcie :
     sdbusplus::server::object_t<PCIeSlot, location, embedded, item, association>
diff --git a/include/system.hpp b/include/system.hpp
index 80822e2..992408e 100644
--- a/include/system.hpp
+++ b/include/system.hpp
@@ -28,9 +28,9 @@
 
 class System :
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Common::server::UUID>,
+        sdbusplus::server::xyz::openbmc_project::common::UUID>,
     sdbusplus::server::object_t<
-        sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Revision>
+        sdbusplus::server::xyz::openbmc_project::inventory::decorator::Revision>
 {
   public:
     System() = delete;
@@ -43,11 +43,11 @@
     System(sdbusplus::bus_t& bus, const std::string& objPath,
            uint8_t* smbiosTableStorage) :
         sdbusplus::server::object_t<
-            sdbusplus::xyz::openbmc_project::Common::server::UUID>(
+            sdbusplus::server::xyz::openbmc_project::common::UUID>(
             bus, objPath.c_str()),
         bus(bus),
-        sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
-                                        Decorator::server::Revision>(
+        sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                        inventory::decorator::Revision>(
             bus, objPath.c_str()),
         path(objPath), storage(smbiosTableStorage)
     {
