diff --git a/include/biccommands.hpp b/include/biccommands.hpp
index 44d0e76..dfce3a4 100644
--- a/include/biccommands.hpp
+++ b/include/biccommands.hpp
@@ -1,3 +1,4 @@
+#include <cstdint>
 
 enum class fb_bic_cmds : uint8_t
 {
diff --git a/include/commandutils.hpp b/include/commandutils.hpp
index b9290d0..5658c1c 100644
--- a/include/commandutils.hpp
+++ b/include/commandutils.hpp
@@ -15,10 +15,12 @@
  */
 
 #pragma once
+#include "config.h"
+
+#include <ipmid/api.hpp>
 #include <sdbusplus/bus.hpp>
 
 #include <iostream>
-#include "config.h"
 
 static constexpr bool debug = false;
 
diff --git a/include/sensorutils.hpp b/include/sensorutils.hpp
index 5e88dc4..00e844d 100644
--- a/include/sensorutils.hpp
+++ b/include/sensorutils.hpp
@@ -77,10 +77,10 @@
         return false;
     }
     sdbusplus::bus_t dbus(bus);
-    auto mapperCall =
-        dbus.new_method_call("xyz.openbmc_project.ObjectMapper",
-                             "/xyz/openbmc_project/object_mapper",
-                             "xyz.openbmc_project.ObjectMapper", "GetSubTree");
+    auto mapperCall = dbus.new_method_call("xyz.openbmc_project.ObjectMapper",
+                                           "/xyz/openbmc_project/object_mapper",
+                                           "xyz.openbmc_project.ObjectMapper",
+                                           "GetSubTree");
     static constexpr const auto depth = 2;
     static constexpr std::array<const char*, 3> interfaces = {
         "xyz.openbmc_project.Sensor.Value",
diff --git a/include/usb-dbg.hpp b/include/usb-dbg.hpp
index dce82e5..0f6a0c7 100644
--- a/include/usb-dbg.hpp
+++ b/include/usb-dbg.hpp
@@ -21,12 +21,12 @@
 
 #include <appcommands.hpp>
 #include <ipmid/api.hpp>
+#include <ipmid/utils.hpp>
 #include <nlohmann/json.hpp>
-#include <phosphor-logging/log.hpp>
 #include <phosphor-logging/lg2.hpp>
+#include <phosphor-logging/log.hpp>
 #include <sdbusplus/asio/connection.hpp>
 #include <sdbusplus/asio/property.hpp>
-#include <ipmid/utils.hpp>
 
 #include <fstream>
 #include <iomanip>
@@ -99,8 +99,7 @@
     uint8_t esc_sts;
     uint8_t overwrite;
     time_t mtime;
-    frame() : buf(NULL), pages(0), mtime(0)
-    {}
+    frame() : buf(NULL), pages(0), mtime(0) {}
     int init(size_t size);
     int append(const char* string, int indent);
     int insert(const char* string, int indent);
