diff --git a/host_state_manager.hpp b/host_state_manager.hpp
index fc80da8..c8fb24f 100644
--- a/host_state_manager.hpp
+++ b/host_state_manager.hpp
@@ -25,10 +25,10 @@
 {
 
 using HostInherit = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::State::server::Host,
-    sdbusplus::xyz::openbmc_project::State::Boot::server::Progress,
-    sdbusplus::xyz::openbmc_project::Control::Boot::server::RebootAttempts,
-    sdbusplus::xyz::openbmc_project::State::OperatingSystem::server::Status>;
+    sdbusplus::server::xyz::openbmc_project::state::Host,
+    sdbusplus::server::xyz::openbmc_project::state::boot::Progress,
+    sdbusplus::server::xyz::openbmc_project::control::boot::RebootAttempts,
+    sdbusplus::server::xyz::openbmc_project::state::operating_system::Status>;
 
 PHOSPHOR_LOG2_USING;
 
@@ -79,7 +79,7 @@
         determineInitialState();
 
         // Sets auto-reboot attempts to max-allowed
-        attemptsLeft(sdbusplus::xyz::openbmc_project::Control::Boot::server::
+        attemptsLeft(sdbusplus::server::xyz::openbmc_project::control::boot::
                          RebootAttempts::retryAttempts());
 
         // We deferred this until we could get our property correct
@@ -111,16 +111,16 @@
      */
     uint32_t retryAttempts(uint32_t value) override
     {
-        if (sdbusplus::xyz::openbmc_project::Control::Boot::server::
+        if (sdbusplus::server::xyz::openbmc_project::control::boot::
                 RebootAttempts::attemptsLeft() != value)
         {
             info("Automatic reboot retry attempts set to: {VALUE} ", "VALUE",
                  value);
-            sdbusplus::xyz::openbmc_project::Control::Boot::server::
+            sdbusplus::server::xyz::openbmc_project::control::boot::
                 RebootAttempts::attemptsLeft(value);
         }
 
-        return (sdbusplus::xyz::openbmc_project::Control::Boot::server::
+        return (sdbusplus::server::xyz::openbmc_project::control::boot::
                     RebootAttempts::retryAttempts(value));
     }
 
@@ -147,7 +147,7 @@
         auto retryAttempts = sdbusplus::xyz::openbmc_project::Control::Boot::
             server::RebootAttempts::retryAttempts();
         return (
-            sdbusplus::xyz::openbmc_project::Control::Boot::server::
+            sdbusplus::server::xyz::openbmc_project::control::boot::
                 RebootAttempts::attemptsLeft(std::min(value, retryAttempts)));
     }
 
@@ -241,7 +241,7 @@
     {
         // version is not used currently
         (void)(version);
-        archive(sdbusplus::xyz::openbmc_project::Control::Boot::server::
+        archive(sdbusplus::server::xyz::openbmc_project::control::boot::
                     RebootAttempts::retryAttempts(),
                 convertForMessage(sdbusplus::xyz::openbmc_project::State::
                                       server::Host::requestedHostTransition()),
@@ -280,14 +280,14 @@
         auto reqTran = Host::convertTransitionFromString(reqTranState);
         // When restoring, set the requested state with persistent value
         // but don't call the override which would execute it
-        sdbusplus::xyz::openbmc_project::State::server::Host::
+        sdbusplus::server::xyz::openbmc_project::state::Host::
             requestedHostTransition(reqTran);
-        sdbusplus::xyz::openbmc_project::State::Boot::server::Progress::
+        sdbusplus::server::xyz::openbmc_project::state::boot::Progress::
             bootProgress(Host::convertProgressStagesFromString(bootProgress));
-        sdbusplus::xyz::openbmc_project::State::OperatingSystem::server::
+        sdbusplus::server::xyz::openbmc_project::state::operating_system::
             Status::operatingSystemState(
                 Host::convertOSStatusFromString(osState));
-        sdbusplus::xyz::openbmc_project::Control::Boot::server::RebootAttempts::
+        sdbusplus::server::xyz::openbmc_project::control::boot::RebootAttempts::
             retryAttempts(retryAttempts);
     }
 
