diff --git a/error-HostEvent.hpp b/error-HostEvent.hpp
index 9dbb823..9e6397a 100644
--- a/error-HostEvent.hpp
+++ b/error-HostEvent.hpp
@@ -2,17 +2,10 @@
 
 #include <sdbusplus/exception.hpp>
 
-namespace sdbusplus
-{
-namespace org
-{
-namespace open_power
-{
-namespace Host
-{
-namespace Error
-{
+#include <cerrno>
 
+namespace sdbusplus::error::org::open_power::host
+{
 struct Event final : public sdbusplus::exception::generated_exception
 {
     static constexpr auto errName = "org.open_power.Host.Error.Event";
@@ -20,11 +13,19 @@
     static constexpr auto errWhat =
         "org.open_power.Host.Error.Event: A host system event was received";
 
-    const char* name() const noexcept override;
-    const char* description() const noexcept override;
-    const char* what() const noexcept override;
+    const char* name() const noexcept override
+    {
+        return errName;
+    }
+    const char* description() const noexcept override
+    {
+        return errDesc;
+    }
+    const char* what() const noexcept override
+    {
+        return errWhat;
+    }
 };
-
 struct MaintenanceProcedure final :
     public sdbusplus::exception::generated_exception
 {
@@ -33,16 +34,28 @@
     static constexpr auto errDesc =
         "A host system event with a procedure callout";
     static constexpr auto errWhat =
-        "org.open_power.Host.Error.MaintenanceProcedure: A host system event "
-        "with a procedure callout";
+        "org.open_power.Host.Error.MaintenanceProcedure: A host system event with a procedure callout";
 
-    const char* name() const noexcept override;
-    const char* description() const noexcept override;
-    const char* what() const noexcept override;
+    const char* name() const noexcept override
+    {
+        return errName;
+    }
+    const char* description() const noexcept override
+    {
+        return errDesc;
+    }
+    const char* what() const noexcept override
+    {
+        return errWhat;
+    }
 };
+} // namespace sdbusplus::error::org::open_power::host
 
-} // namespace Error
-} // namespace Host
-} // namespace open_power
-} // namespace org
-} // namespace sdbusplus
+#ifndef SDBUSPP_REMOVE_DEPRECATED_NAMESPACE
+namespace sdbusplus::org::open_power::Host::Error
+{
+using Event = sdbusplus::error::org::open_power::host::Event;
+using MaintenanceProcedure =
+    sdbusplus::error::org::open_power::host::MaintenanceProcedure;
+} // namespace sdbusplus::org::open_power::Host::Error
+#endif
