diff --git a/phosphor-power-supply/psu_manager.cpp b/phosphor-power-supply/psu_manager.cpp
index 83fddd4..0fcd566 100644
--- a/phosphor-power-supply/psu_manager.cpp
+++ b/phosphor-power-supply/psu_manager.cpp
@@ -4,11 +4,7 @@
 
 using namespace phosphor::logging;
 
-namespace phosphor
-{
-namespace power
-{
-namespace manager
+namespace phosphor::power::manager
 {
 
 PSUManager::PSUManager(sdbusplus::bus::bus& bus, const sdeventplus::Event& e,
@@ -129,6 +125,34 @@
     }
 }
 
-} // namespace manager
-} // namespace power
-} // namespace phosphor
+void PSUManager::analyze()
+{
+    for (auto& psu : psus)
+    {
+        psu->analyze();
+    }
+
+    for (auto& psu : psus)
+    {
+        // TODO: Fault priorities #918
+        if (!faultLogged && psu->isFaulted())
+        {
+            if (psu->hasInputFault())
+            {
+                // TODO: Create error log
+            }
+
+            if (psu->hasMFRFault())
+            {
+                // TODO: Create error log
+            }
+
+            if (psu->hasVINUVFault())
+            {
+                // TODO: Create error log
+            }
+        }
+    }
+}
+
+} // namespace phosphor::power::manager
diff --git a/phosphor-power-supply/psu_manager.hpp b/phosphor-power-supply/psu_manager.hpp
index 13b581e..ca8fd05 100644
--- a/phosphor-power-supply/psu_manager.hpp
+++ b/phosphor-power-supply/psu_manager.hpp
@@ -18,11 +18,7 @@
 using namespace phosphor::power::psu;
 using namespace phosphor::logging;
 
-namespace phosphor
-{
-namespace power
-{
-namespace manager
+namespace phosphor::power::manager
 {
 
 /**
@@ -145,35 +141,7 @@
     /**
      * Analyze the status of each of the power supplies.
      */
-    void analyze()
-    {
-        for (auto& psu : psus)
-        {
-            psu->analyze();
-        }
-
-        for (auto& psu : psus)
-        {
-            // TODO: Fault priorities #918
-            if (!faultLogged && psu->isFaulted())
-            {
-                if (psu->hasInputFault())
-                {
-                    // TODO: Create error log
-                }
-
-                if (psu->hasMFRFault())
-                {
-                    // TODO: Create error log
-                }
-
-                if (psu->hasVINUVFault())
-                {
-                    // TODO: Create error log
-                }
-            }
-        }
-    }
+    void analyze();
 
     /** @brief True if the power is on. */
     bool powerOn = false;
@@ -229,6 +197,4 @@
     std::vector<std::unique_ptr<PowerSupply>> psus;
 };
 
-} // namespace manager
-} // namespace power
-} // namespace phosphor
+} // namespace phosphor::power::manager
