diff --git a/power-supply/average.hpp b/power-supply/average.hpp
index a61a436..cf54a7d 100644
--- a/power-supply/average.hpp
+++ b/power-supply/average.hpp
@@ -1,7 +1,8 @@
 #pragma once
-#include <functional>
 #include <org/open_power/Sensor/Aggregation/History/Average/server.hpp>
 
+#include <functional>
+
 namespace witherspoon
 {
 namespace power
diff --git a/power-supply/main.cpp b/power-supply/main.cpp
index 93b4b77..7c5fcad 100644
--- a/power-supply/main.cpp
+++ b/power-supply/main.cpp
@@ -19,10 +19,11 @@
 #include "device_monitor.hpp"
 #include "power_supply.hpp"
 
-#include <iostream>
 #include <phosphor-logging/log.hpp>
 #include <sdeventplus/event.hpp>
 
+#include <iostream>
+
 using namespace witherspoon::power;
 using namespace phosphor::logging;
 
diff --git a/power-supply/maximum.hpp b/power-supply/maximum.hpp
index d952d2b..d48f60f 100644
--- a/power-supply/maximum.hpp
+++ b/power-supply/maximum.hpp
@@ -1,7 +1,8 @@
 #pragma once
-#include <functional>
 #include <org/open_power/Sensor/Aggregation/History/Maximum/server.hpp>
 
+#include <functional>
+
 namespace witherspoon
 {
 namespace power
diff --git a/power-supply/power_supply.cpp b/power-supply/power_supply.cpp
index d2d3e9c..d936d28 100644
--- a/power-supply/power_supply.cpp
+++ b/power-supply/power_supply.cpp
@@ -21,13 +21,14 @@
 #include "pmbus.hpp"
 #include "utility.hpp"
 
-#include <functional>
 #include <org/open_power/Witherspoon/Fault/error.hpp>
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
 #include <xyz/openbmc_project/Common/Device/error.hpp>
 #include <xyz/openbmc_project/Software/Version/server.hpp>
 
+#include <functional>
+
 namespace witherspoon
 {
 namespace power
@@ -664,36 +665,32 @@
             sn = pmbusIntf.readString(SERIAL_NUMBER, Type::HwmonDeviceDebug);
         }
         catch (ReadFailure& e)
-        {
-        }
+        {}
 
         try
         {
             pn = pmbusIntf.readString(PART_NUMBER, Type::HwmonDeviceDebug);
         }
         catch (ReadFailure& e)
-        {
-        }
+        {}
 
         try
         {
             ccin = pmbusIntf.readString(CCIN, Type::HwmonDeviceDebug);
         }
         catch (ReadFailure& e)
-        {
-        }
+        {}
 
         try
         {
             version = pmbusIntf.readString(FW_VERSION, Type::HwmonDeviceDebug);
         }
         catch (ReadFailure& e)
-        {
-        }
+        {}
     }
 
     // Build the object map and send it to the inventory
-    using Properties = std::map<std::string, variant<std::string>>;
+    using Properties = std::map<std::string, std::variant<std::string>>;
     using Interfaces = std::map<std::string, Properties>;
     using Object = std::map<object_path, Interfaces>;
     Properties assetProps;
diff --git a/power-supply/record_manager.cpp b/power-supply/record_manager.cpp
index b585ba0..336d0c5 100644
--- a/power-supply/record_manager.cpp
+++ b/power-supply/record_manager.cpp
@@ -17,9 +17,10 @@
 
 #include <math.h>
 
-#include <chrono>
 #include <phosphor-logging/log.hpp>
 
+#include <chrono>
+
 namespace witherspoon
 {
 namespace power
diff --git a/power-supply/record_manager.hpp b/power-supply/record_manager.hpp
index 7ebcc3f..98382c7 100644
--- a/power-supply/record_manager.hpp
+++ b/power-supply/record_manager.hpp
@@ -1,6 +1,8 @@
 #pragma once
 
+#include <cstdint>
 #include <deque>
+#include <stdexcept>
 #include <tuple>
 #include <vector>
 
@@ -27,8 +29,7 @@
 {
   public:
     InvalidRecordException() : std::runtime_error("Invalid history record")
-    {
-    }
+    {}
 };
 
 /**
@@ -70,8 +71,7 @@
      *                     records to keep at a time
      */
     RecordManager(size_t maxRec) : RecordManager(maxRec, LAST_SEQUENCE_ID)
-    {
-    }
+    {}
 
     /**
      * @brief Constructor
@@ -83,8 +83,7 @@
      */
     RecordManager(size_t maxRec, size_t lastSequenceID) :
         maxRecords(maxRec), lastSequenceID(lastSequenceID)
-    {
-    }
+    {}
 
     /**
      * @brief Adds a new entry to the history
