diff --git a/.clang-format b/.clang-format
index ea71ad6..ef6f54e 100644
--- a/.clang-format
+++ b/.clang-format
@@ -5,7 +5,7 @@
 AlignAfterOpenBracket: Align
 AlignConsecutiveAssignments: false
 AlignConsecutiveDeclarations: false
-AlignEscapedNewlinesLeft: false
+AlignEscapedNewlines: Right
 AlignOperands:   true
 AlignTrailingComments: true
 AllowAllParametersOfDeclarationOnNextLine: true
@@ -14,13 +14,13 @@
 AllowShortFunctionsOnASingleLine: None
 AllowShortIfStatementsOnASingleLine: false
 AllowShortLoopsOnASingleLine: false
-AlwaysBreakAfterDefinitionReturnType: None
 AlwaysBreakAfterReturnType: None
 AlwaysBreakBeforeMultilineStrings: false
-AlwaysBreakTemplateDeclarations: true
+AlwaysBreakTemplateDeclarations: Yes
 BinPackArguments: true
 BinPackParameters: true
 BraceWrapping:
+  AfterCaseLabel:  true
   AfterClass:      true
   AfterControlStatement: true
   AfterEnum:       true
@@ -29,15 +29,22 @@
   AfterObjCDeclaration: true
   AfterStruct:     true
   AfterUnion:      true
+  AfterExternBlock: true
   BeforeCatch:     true
   BeforeElse:      true
   IndentBraces:    false
+  SplitEmptyFunction:   false
+  SplitEmptyRecord:     false
+  SplitEmptyNamespace:  false
 BreakBeforeBinaryOperators: None
 BreakBeforeBraces: Custom
 BreakBeforeTernaryOperators: true
 BreakConstructorInitializers: AfterColon
+BreakInheritanceList: AfterColon
+BreakStringLiterals: true
 ColumnLimit:     80
 CommentPragmas:  '^ IWYU pragma:'
+CompactNamespaces: false
 ConstructorInitializerAllOnOneLineOrOnePerLine: false
 ConstructorInitializerIndentWidth: 4
 ContinuationIndentWidth: 4
@@ -51,17 +58,21 @@
 IncludeBlocks: Regroup
 IncludeCategories:
   - Regex:           '^[<"](gtest|gmock)'
-    Priority:        5
+    Priority:        7
   - Regex:           '^"config.h"'
     Priority:        -1
-  - Regex:           '^".*\.hpp"'
+  - Regex:           '^".*\.h"'
     Priority:        1
-  - Regex:           '^<.*\.h>'
+  - Regex:           '^".*\.hpp"'
     Priority:        2
-  - Regex:           '^<.*'
+  - Regex:           '^<.*\.h>'
     Priority:        3
-  - Regex:           '.*'
+  - Regex:           '^<.*\.hpp>'
     Priority:        4
+  - Regex:           '^<.*'
+    Priority:        5
+  - Regex:           '.*'
+    Priority:        6
 IndentCaseLabels: true
 IndentWidth:     4
 IndentWrappedFunctionNames: true
@@ -83,8 +94,13 @@
 SortIncludes:    true
 SortUsingDeclarations: true
 SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
 SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
 SpaceBeforeParens: ControlStatements
+SpaceBeforeRangeBasedForLoopColon: true
 SpaceInEmptyParentheses: false
 SpacesBeforeTrailingComments: 1
 SpacesInAngles:  false
diff --git a/bmc/buildjson.cpp b/bmc/buildjson.cpp
index 3fdda31..822e640 100644
--- a/bmc/buildjson.cpp
+++ b/bmc/buildjson.cpp
@@ -20,14 +20,15 @@
 #include "general_systemd.hpp"
 #include "skip_action.hpp"
 
+#include <nlohmann/json.hpp>
+#include <phosphor-logging/log.hpp>
+#include <sdbusplus/bus.hpp>
+
 #include <algorithm>
 #include <cstdio>
 #include <exception>
 #include <fstream>
-#include <nlohmann/json.hpp>
-#include <phosphor-logging/log.hpp>
 #include <regex>
-#include <sdbusplus/bus.hpp>
 #include <string>
 #include <vector>
 
diff --git a/bmc/buildjson.hpp b/bmc/buildjson.hpp
index 8e333f6..0af4241 100644
--- a/bmc/buildjson.hpp
+++ b/bmc/buildjson.hpp
@@ -3,8 +3,9 @@
 #include "firmware_handler.hpp"
 #include "image_handler.hpp"
 
-#include <memory>
 #include <nlohmann/json.hpp>
+
+#include <memory>
 #include <string>
 #include <vector>
 
diff --git a/bmc/file_handler.cpp b/bmc/file_handler.cpp
index e81730d..f7878ea 100644
--- a/bmc/file_handler.cpp
+++ b/bmc/file_handler.cpp
@@ -97,8 +97,7 @@
         return static_cast<int>(fs::file_size(filename));
     }
     catch (const fs::filesystem_error& e)
-    {
-    }
+    {}
 
     return 0;
 }
diff --git a/bmc/file_handler.hpp b/bmc/file_handler.hpp
index 9cb2819..0c00d2d 100644
--- a/bmc/file_handler.hpp
+++ b/bmc/file_handler.hpp
@@ -21,8 +21,7 @@
      * qualified file system path.
      */
     explicit FileHandler(const std::string& filename) : filename(filename)
-    {
-    }
+    {}
 
     bool open(const std::string& path) override;
     void close() override;
diff --git a/bmc/firmware_handler.cpp b/bmc/firmware_handler.cpp
index 9b35e5f..9923d5b 100644
--- a/bmc/firmware_handler.cpp
+++ b/bmc/firmware_handler.cpp
@@ -22,13 +22,14 @@
 #include "status.hpp"
 #include "util.hpp"
 
-#include <algorithm>
 #include <blobs-ipmid/blobs.hpp>
+#include <phosphor-logging/log.hpp>
+
+#include <algorithm>
 #include <cstdint>
 #include <cstring>
 #include <fstream>
 #include <memory>
-#include <phosphor-logging/log.hpp>
 #include <string>
 #include <vector>
 
diff --git a/bmc/firmware_handler.hpp b/bmc/firmware_handler.hpp
index 6275843..5cef9e9 100644
--- a/bmc/firmware_handler.hpp
+++ b/bmc/firmware_handler.hpp
@@ -7,8 +7,9 @@
 #include "status.hpp"
 #include "util.hpp"
 
-#include <algorithm>
 #include <blobs-ipmid/blobs.hpp>
+
+#include <algorithm>
 #include <cstdint>
 #include <map>
 #include <memory>
@@ -49,8 +50,7 @@
      */
     explicit Session(const std::string& path) :
         dataHandler(nullptr), imageHandler(nullptr), flags(0), activePath(path)
-    {
-    }
+    {}
 
     /**
      * Pointer to the correct Data handler interface. (nullptr on BT (or KCS))
@@ -129,8 +129,7 @@
         activeHash(activeHashBlobId), verifyImage(verifyBlobId),
         updateImage(updateBlobId), lookup(), state(UpdateState::notYetStarted),
         actionPacks(std::move(actionPacks))
-    {
-    }
+    {}
     ~FirmwareBlobHandler() = default;
     FirmwareBlobHandler(const FirmwareBlobHandler&) = delete;
     FirmwareBlobHandler& operator=(const FirmwareBlobHandler&) = delete;
diff --git a/bmc/general_systemd.cpp b/bmc/general_systemd.cpp
index b036bbf..8f2c735 100644
--- a/bmc/general_systemd.cpp
+++ b/bmc/general_systemd.cpp
@@ -18,9 +18,10 @@
 
 #include "status.hpp"
 
+#include <sdbusplus/bus.hpp>
+
 #include <fstream>
 #include <memory>
-#include <sdbusplus/bus.hpp>
 #include <string>
 #include <vector>
 
diff --git a/bmc/general_systemd.hpp b/bmc/general_systemd.hpp
index 590b339..9b33460 100644
--- a/bmc/general_systemd.hpp
+++ b/bmc/general_systemd.hpp
@@ -2,9 +2,10 @@
 
 #include "status.hpp"
 
-#include <memory>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/bus/match.hpp>
+
+#include <memory>
 #include <string>
 
 namespace ipmi_flash
@@ -22,8 +23,7 @@
                   const std::string& mode) :
         bus(std::move(bus)),
         triggerService(service), mode(mode)
-    {
-    }
+    {}
 
     SystemdNoFile(const SystemdNoFile&) = delete;
     SystemdNoFile& operator=(const SystemdNoFile&) = delete;
@@ -76,8 +76,7 @@
                           const std::string& service, const std::string& mode) :
         SystemdNoFile(std::move(bus), service, mode),
         checkPath(path)
-    {
-    }
+    {}
 
     bool trigger() override;
     ActionStatus status() override;
diff --git a/bmc/image_handler.hpp b/bmc/image_handler.hpp
index 52d682f..a25a74a 100644
--- a/bmc/image_handler.hpp
+++ b/bmc/image_handler.hpp
@@ -55,8 +55,7 @@
                 std::unique_ptr<ImageHandlerInterface> handler) :
         blobName(name),
         handler(std::move(handler))
-    {
-    }
+    {}
 
     HandlerPack() = default;
     ~HandlerPack() = default;
diff --git a/bmc/lpc_handler.hpp b/bmc/lpc_handler.hpp
index 4158b9b..cc04433 100644
--- a/bmc/lpc_handler.hpp
+++ b/bmc/lpc_handler.hpp
@@ -34,8 +34,7 @@
      */
     explicit LpcDataHandler(std::unique_ptr<HardwareMapperInterface> mapper) :
         mapper(std::move(mapper)), initialized(false)
-    {
-    }
+    {}
 
     bool open() override;
     bool close() override;
diff --git a/bmc/main.cpp b/bmc/main.cpp
index 0e779b4..48af9d0 100644
--- a/bmc/main.cpp
+++ b/bmc/main.cpp
@@ -30,10 +30,11 @@
 #include "status.hpp"
 #include "util.hpp"
 
-#include <cstdint>
-#include <memory>
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
+
+#include <cstdint>
+#include <memory>
 #include <string>
 #include <unordered_map>
 #include <vector>
@@ -105,8 +106,9 @@
 } // namespace
 } // namespace ipmi_flash
 
-extern "C" {
-std::unique_ptr<blobs::GenericBlobInterface> createHandler();
+extern "C"
+{
+    std::unique_ptr<blobs::GenericBlobInterface> createHandler();
 }
 
 std::unique_ptr<blobs::GenericBlobInterface> createHandler()
diff --git a/bmc/mapper_errors.hpp b/bmc/mapper_errors.hpp
index 8f30f30..7717f4b 100644
--- a/bmc/mapper_errors.hpp
+++ b/bmc/mapper_errors.hpp
@@ -10,8 +10,7 @@
 {
   public:
     explicit MapperException(const std::string& message) : message(message)
-    {
-    }
+    {}
 
     virtual const char* what() const noexcept override
     {
diff --git a/bmc/net_handler.hpp b/bmc/net_handler.hpp
index 0a0943f..b107e72 100644
--- a/bmc/net_handler.hpp
+++ b/bmc/net_handler.hpp
@@ -4,9 +4,10 @@
 
 #include <unistd.h>
 
+#include <stdplus/handle/managed.hpp>
+
 #include <cstdint>
 #include <optional>
-#include <stdplus/handle/managed.hpp>
 #include <vector>
 
 namespace ipmi_flash
@@ -19,8 +20,7 @@
 {
   public:
     NetDataHandler() : listenFd(std::nullopt), connFd(std::nullopt)
-    {
-    }
+    {}
 
     bool open() override;
     bool close() override;
diff --git a/bmc/skip_action.hpp b/bmc/skip_action.hpp
index 2ae9377..65fcfc8 100644
--- a/bmc/skip_action.hpp
+++ b/bmc/skip_action.hpp
@@ -28,8 +28,7 @@
         return true;
     }
     void abort() override
-    {
-    }
+    {}
     ActionStatus status() override
     {
         return ActionStatus::success;
diff --git a/bmc/test/firmware_close_unittest.cpp b/bmc/test/firmware_close_unittest.cpp
index 87de86e..580fcf4 100644
--- a/bmc/test/firmware_close_unittest.cpp
+++ b/bmc/test/firmware_close_unittest.cpp
@@ -21,8 +21,7 @@
 using ::testing::StrEq;
 
 class FirmwareHandlerCloseTest : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerCloseTest, CloseSucceedsWithDataHandler)
 {
diff --git a/bmc/test/firmware_open_unittest.cpp b/bmc/test/firmware_open_unittest.cpp
index 21ab97b..77e5ff3 100644
--- a/bmc/test/firmware_open_unittest.cpp
+++ b/bmc/test/firmware_open_unittest.cpp
@@ -16,8 +16,7 @@
 {
 
 class FirmwareOpenFailTest : public ::testing::TestWithParam<std::uint16_t>
-{
-};
+{};
 
 TEST_P(FirmwareOpenFailTest, WithFlags)
 {
diff --git a/bmc/test/firmware_sessionstat_unittest.cpp b/bmc/test/firmware_sessionstat_unittest.cpp
index 9623246..0e2796c 100644
--- a/bmc/test/firmware_sessionstat_unittest.cpp
+++ b/bmc/test/firmware_sessionstat_unittest.cpp
@@ -15,12 +15,10 @@
 using ::testing::Return;
 
 class FirmwareSessionStateTestIpmiOnly : public IpmiOnlyFirmwareTest
-{
-};
+{};
 
 class FirmwareSessionStateTestLpc : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareSessionStateTestIpmiOnly, DataTypeIpmiNoMetadata)
 {
diff --git a/bmc/test/firmware_state_notyetstarted_unittest.cpp b/bmc/test/firmware_state_notyetstarted_unittest.cpp
index 2a100bd..b3cfc49 100644
--- a/bmc/test/firmware_state_notyetstarted_unittest.cpp
+++ b/bmc/test/firmware_state_notyetstarted_unittest.cpp
@@ -20,8 +20,7 @@
 using ::testing::UnorderedElementsAreArray;
 
 class FirmwareHandlerNotYetStartedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * There are the following calls (parameters may vary):
diff --git a/bmc/test/firmware_state_updatecompleted_unittest.cpp b/bmc/test/firmware_state_updatecompleted_unittest.cpp
index 320d09e..7136223 100644
--- a/bmc/test/firmware_state_updatecompleted_unittest.cpp
+++ b/bmc/test/firmware_state_updatecompleted_unittest.cpp
@@ -39,8 +39,7 @@
  */
 
 class FirmwareHandlerUpdateCompletedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * open(blob)
diff --git a/bmc/test/firmware_state_updatepending_unittest.cpp b/bmc/test/firmware_state_updatepending_unittest.cpp
index d757b3c..16a6498 100644
--- a/bmc/test/firmware_state_updatepending_unittest.cpp
+++ b/bmc/test/firmware_state_updatepending_unittest.cpp
@@ -41,8 +41,7 @@
  */
 
 class FirmwareHandlerUpdatePendingTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * There are the following calls (parameters may vary):
diff --git a/bmc/test/firmware_state_updatestarted_unittest.cpp b/bmc/test/firmware_state_updatestarted_unittest.cpp
index 086dcfa..3aa97ed 100644
--- a/bmc/test/firmware_state_updatestarted_unittest.cpp
+++ b/bmc/test/firmware_state_updatestarted_unittest.cpp
@@ -38,8 +38,7 @@
  */
 
 class FirmwareHandlerUpdateStartedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * open(blob)
diff --git a/bmc/test/firmware_state_uploadinprogress_unittest.cpp b/bmc/test/firmware_state_uploadinprogress_unittest.cpp
index 366435b..994ddb1 100644
--- a/bmc/test/firmware_state_uploadinprogress_unittest.cpp
+++ b/bmc/test/firmware_state_uploadinprogress_unittest.cpp
@@ -40,8 +40,7 @@
  * will inform what canHandleBlob will return.
  */
 class FirmwareHandlerUploadInProgressTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerUploadInProgressTest, GetBlobIdsVerifyOutputActiveImage)
 {
diff --git a/bmc/test/firmware_state_verificationcompleted_unittest.cpp b/bmc/test/firmware_state_verificationcompleted_unittest.cpp
index 0c6bae7..f7b0998 100644
--- a/bmc/test/firmware_state_verificationcompleted_unittest.cpp
+++ b/bmc/test/firmware_state_verificationcompleted_unittest.cpp
@@ -42,10 +42,9 @@
  * indicates a successful verification.
  */
 
-class FirmwareHandlerVerificationCompletedTest
-    : public IpmiOnlyFirmwareStaticTest
-{
-};
+class FirmwareHandlerVerificationCompletedTest :
+    public IpmiOnlyFirmwareStaticTest
+{};
 
 /*
  * deleteBlob(blob)
diff --git a/bmc/test/firmware_state_verificationpending_unittest.cpp b/bmc/test/firmware_state_verificationpending_unittest.cpp
index c9b8e92..3b958c1 100644
--- a/bmc/test/firmware_state_verificationpending_unittest.cpp
+++ b/bmc/test/firmware_state_verificationpending_unittest.cpp
@@ -43,8 +43,7 @@
  */
 
 class FirmwareHandlerVerificationPendingTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * getBlobIds
diff --git a/bmc/test/firmware_state_verificationstarted_unittest.cpp b/bmc/test/firmware_state_verificationstarted_unittest.cpp
index a974c2b..df2c422 100644
--- a/bmc/test/firmware_state_verificationstarted_unittest.cpp
+++ b/bmc/test/firmware_state_verificationstarted_unittest.cpp
@@ -41,8 +41,7 @@
  */
 
 class FirmwareHandlerVerificationStartedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * canHandleBlob(blob)
diff --git a/bmc/test/firmware_write_unittest.cpp b/bmc/test/firmware_write_unittest.cpp
index 481f3ec..a47134f 100644
--- a/bmc/test/firmware_write_unittest.cpp
+++ b/bmc/test/firmware_write_unittest.cpp
@@ -21,12 +21,10 @@
 using ::testing::Return;
 
 class FirmwareHandlerWriteTestIpmiOnly : public IpmiOnlyFirmwareTest
-{
-};
+{};
 
 class FirmwareHandlerWriteTestLpc : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerWriteTestIpmiOnly, DataTypeIpmiWriteSuccess)
 {
diff --git a/bmc/test/firmware_writemeta_unittest.cpp b/bmc/test/firmware_writemeta_unittest.cpp
index ef292b0..22f778d 100644
--- a/bmc/test/firmware_writemeta_unittest.cpp
+++ b/bmc/test/firmware_writemeta_unittest.cpp
@@ -19,8 +19,7 @@
 using ::testing::Return;
 
 class FirmwareHandlerWriteMetaTest : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerWriteMetaTest, WriteConfigParametersFailIfOverIPMI)
 {
diff --git a/cleanup/cleanup.cpp b/cleanup/cleanup.cpp
index 7ab7ee4..201b9c8 100644
--- a/cleanup/cleanup.cpp
+++ b/cleanup/cleanup.cpp
@@ -17,6 +17,7 @@
 #include "cleanup.hpp"
 
 #include <blobs-ipmid/blobs.hpp>
+
 #include <filesystem>
 #include <memory>
 #include <string>
diff --git a/cleanup/cleanup.hpp b/cleanup/cleanup.hpp
index 7c528af..3120a3c 100644
--- a/cleanup/cleanup.hpp
+++ b/cleanup/cleanup.hpp
@@ -3,6 +3,7 @@
 #include "fs.hpp"
 
 #include <blobs-ipmid/blobs.hpp>
+
 #include <memory>
 #include <string>
 #include <vector>
@@ -22,8 +23,7 @@
                        const FileSystemInterface* helper = &fileSystemHelper) :
         supported(blobId),
         files(files), helper(helper)
-    {
-    }
+    {}
 
     ~FileCleanupHandler() = default;
     FileCleanupHandler(const FileCleanupHandler&) = default;
diff --git a/cleanup/main.cpp b/cleanup/main.cpp
index 95ab271..09bdb72 100644
--- a/cleanup/main.cpp
+++ b/cleanup/main.cpp
@@ -20,8 +20,9 @@
 #include "util.hpp"
 
 #include <blobs-ipmid/blobs.hpp>
-#include <memory>
 #include <phosphor-logging/log.hpp>
+
+#include <memory>
 #include <string>
 #include <vector>
 
diff --git a/tools/bt.cpp b/tools/bt.cpp
index d1e4dc7..26c333b 100644
--- a/tools/bt.cpp
+++ b/tools/bt.cpp
@@ -1,7 +1,8 @@
 #include "bt.hpp"
 
-#include <cstdint>
 #include <ipmiblob/blob_errors.hpp>
+
+#include <cstdint>
 #include <vector>
 
 namespace host_tool
diff --git a/tools/handler.cpp b/tools/handler.cpp
index dbaa53f..d175e85 100644
--- a/tools/handler.cpp
+++ b/tools/handler.cpp
@@ -22,10 +22,11 @@
 #include "tool_errors.hpp"
 #include "util.hpp"
 
+#include <ipmiblob/blob_errors.hpp>
+
 #include <algorithm>
 #include <cstdint>
 #include <cstring>
-#include <ipmiblob/blob_errors.hpp>
 #include <string>
 #include <vector>
 
@@ -166,8 +167,7 @@
         std::fprintf(stderr, "Closing cleanup blob\n");
     }
     catch (...)
-    {
-    }
+    {}
 
     blob->closeBlob(session);
 }
diff --git a/tools/handler.hpp b/tools/handler.hpp
index a0dae56..5820fba 100644
--- a/tools/handler.hpp
+++ b/tools/handler.hpp
@@ -3,6 +3,7 @@
 #include "interface.hpp"
 
 #include <ipmiblob/blob_interface.hpp>
+
 #include <string>
 
 namespace host_tool
@@ -54,8 +55,7 @@
   public:
     UpdateHandler(ipmiblob::BlobInterface* blob, DataInterface* handler) :
         blob(blob), handler(handler)
-    {
-    }
+    {}
 
     ~UpdateHandler() = default;
 
diff --git a/tools/helper.cpp b/tools/helper.cpp
index 7bce39f..fbb0275 100644
--- a/tools/helper.cpp
+++ b/tools/helper.cpp
@@ -19,8 +19,9 @@
 #include "status.hpp"
 #include "tool_errors.hpp"
 
-#include <chrono>
 #include <ipmiblob/blob_errors.hpp>
+
+#include <chrono>
 #include <thread>
 
 namespace host_tool
diff --git a/tools/helper.hpp b/tools/helper.hpp
index 8004cbf..5580972 100644
--- a/tools/helper.hpp
+++ b/tools/helper.hpp
@@ -1,8 +1,9 @@
 #pragma once
 
-#include <cstdint>
 #include <ipmiblob/blob_interface.hpp>
 
+#include <cstdint>
+
 namespace host_tool
 {
 
diff --git a/tools/io.hpp b/tools/io.hpp
index 8760aec..1476c5c 100644
--- a/tools/io.hpp
+++ b/tools/io.hpp
@@ -44,8 +44,7 @@
   public:
     explicit DevMemDevice(const internal::Sys* sys = &internal::sys_impl) :
         sys(sys)
-    {
-    }
+    {}
 
     ~DevMemDevice() = default;
 
@@ -75,8 +74,7 @@
                           const internal::Sys* sys = &internal::sys_impl) :
         ppcMemPath(ppcMemPath),
         sys(sys)
-    {
-    }
+    {}
 
     ~PpcMemDevice() override;
 
diff --git a/tools/lpc.cpp b/tools/lpc.cpp
index 3616085..cd48844 100644
--- a/tools/lpc.cpp
+++ b/tools/lpc.cpp
@@ -18,10 +18,11 @@
 
 #include "data.hpp"
 
+#include <ipmiblob/blob_errors.hpp>
+
 #include <cerrno>
 #include <cstdint>
 #include <cstring>
-#include <ipmiblob/blob_errors.hpp>
 #include <memory>
 #include <string>
 
diff --git a/tools/lpc.hpp b/tools/lpc.hpp
index 17367bb..1786c94 100644
--- a/tools/lpc.hpp
+++ b/tools/lpc.hpp
@@ -5,9 +5,10 @@
 #include "io.hpp"
 #include "progress.hpp"
 
-#include <cstdint>
 #include <ipmiblob/blob_interface.hpp>
 
+#include <cstdint>
+
 namespace host_tool
 {
 
diff --git a/tools/main.cpp b/tools/main.cpp
index 207fcdd..0e29295 100644
--- a/tools/main.cpp
+++ b/tools/main.cpp
@@ -27,13 +27,14 @@
 /* Use CLI11 argument parser once in openbmc/meta-oe or whatever. */
 #include <getopt.h>
 
+#include <ipmiblob/blob_handler.hpp>
+#include <ipmiblob/ipmi_handler.hpp>
+
 #include <algorithm>
 #include <cstdio>
 #include <cstdlib>
 #include <exception>
 #include <iostream>
-#include <ipmiblob/blob_handler.hpp>
-#include <ipmiblob/ipmi_handler.hpp>
 #include <iterator>
 #include <limits>
 #include <memory>
diff --git a/tools/net.cpp b/tools/net.cpp
index c971cb8..1c7a407 100644
--- a/tools/net.cpp
+++ b/tools/net.cpp
@@ -26,12 +26,13 @@
 #include <sys/socket.h>
 #include <sys/types.h>
 
+#include <ipmiblob/blob_errors.hpp>
+#include <stdplus/handle/managed.hpp>
+
 #include <cstdint>
 #include <cstring>
-#include <ipmiblob/blob_errors.hpp>
 #include <memory>
 #include <optional>
-#include <stdplus/handle/managed.hpp>
 #include <string>
 #include <vector>
 
diff --git a/tools/net.hpp b/tools/net.hpp
index ba329df..7578c82 100644
--- a/tools/net.hpp
+++ b/tools/net.hpp
@@ -6,9 +6,10 @@
 
 #include <unistd.h>
 
-#include <cstdint>
 #include <ipmiblob/blob_interface.hpp>
 #include <stdplus/handle/managed.hpp>
+
+#include <cstdint>
 #include <string>
 
 namespace host_tool
diff --git a/tools/p2a.cpp b/tools/p2a.cpp
index 5146c85..9de60f0 100644
--- a/tools/p2a.cpp
+++ b/tools/p2a.cpp
@@ -20,9 +20,10 @@
 #include "flags.hpp"
 #include "pci.hpp"
 
+#include <ipmiblob/blob_errors.hpp>
+
 #include <cstdint>
 #include <cstring>
-#include <ipmiblob/blob_errors.hpp>
 #include <memory>
 #include <string>
 
diff --git a/tools/p2a.hpp b/tools/p2a.hpp
index 84c0952..1d1cb2d 100644
--- a/tools/p2a.hpp
+++ b/tools/p2a.hpp
@@ -6,8 +6,9 @@
 #include "pci.hpp"
 #include "progress.hpp"
 
-#include <cstdint>
 #include <ipmiblob/blob_interface.hpp>
+
+#include <cstdint>
 #include <vector>
 
 constexpr std::size_t aspeedP2aConfig = 0x0f000;
@@ -34,8 +35,7 @@
                    const internal::Sys* sys = &internal::sys_impl) :
         blob(blob),
         io(io), pci(pci), progress(progress), sys(sys)
-    {
-    }
+    {}
 
     bool sendContents(const std::string& input, std::uint16_t session) override;
     ipmi_flash::FirmwareFlags::UpdateFlags supportedType() const override
diff --git a/tools/pci.cpp b/tools/pci.cpp
index b502a34..feb5c60 100644
--- a/tools/pci.cpp
+++ b/tools/pci.cpp
@@ -16,7 +16,8 @@
 
 #include "pci.hpp"
 
-extern "C" {
+extern "C"
+{
 #include <pci/pci.h>
 } // extern "C"
 
diff --git a/tools/pci.hpp b/tools/pci.hpp
index 37cd736..0edc531 100644
--- a/tools/pci.hpp
+++ b/tools/pci.hpp
@@ -1,9 +1,11 @@
 #pragma once
 
-extern "C" {
+extern "C"
+{
 #include <pci/pci.h>
 } // extern "C"
 
+#include <cstdint>
 #include <optional>
 #include <vector>
 
diff --git a/tools/test/tools_bt_unittest.cpp b/tools/test/tools_bt_unittest.cpp
index cca0b34..c764f54 100644
--- a/tools/test/tools_bt_unittest.cpp
+++ b/tools/test/tools_bt_unittest.cpp
@@ -2,9 +2,10 @@
 #include "internal_sys_mock.hpp"
 #include "progress_mock.hpp"
 
-#include <cstring>
 #include <ipmiblob/test/blob_interface_mock.hpp>
 
+#include <cstring>
+
 #include <gtest/gtest.h>
 
 namespace host_tool
diff --git a/tools/test/tools_helper_unittest.cpp b/tools/test/tools_helper_unittest.cpp
index 931c59f..1c5b30d 100644
--- a/tools/test/tools_helper_unittest.cpp
+++ b/tools/test/tools_helper_unittest.cpp
@@ -1,9 +1,10 @@
 #include "helper.hpp"
 #include "status.hpp"
 
-#include <cstdint>
 #include <ipmiblob/test/blob_interface_mock.hpp>
 
+#include <cstdint>
+
 #include <gtest/gtest.h>
 
 namespace host_tool
diff --git a/tools/test/tools_lpc_unittest.cpp b/tools/test/tools_lpc_unittest.cpp
index 9e417ed..7699609 100644
--- a/tools/test/tools_lpc_unittest.cpp
+++ b/tools/test/tools_lpc_unittest.cpp
@@ -3,9 +3,10 @@
 #include "lpc.hpp"
 #include "progress_mock.hpp"
 
-#include <cstring>
 #include <ipmiblob/test/blob_interface_mock.hpp>
 
+#include <cstring>
+
 #include <gtest/gtest.h>
 
 namespace host_tool
diff --git a/tools/test/tools_net_unittest.cpp b/tools/test/tools_net_unittest.cpp
index c5b8419..94678f1 100644
--- a/tools/test/tools_net_unittest.cpp
+++ b/tools/test/tools_net_unittest.cpp
@@ -3,9 +3,10 @@
 #include "net.hpp"
 #include "progress_mock.hpp"
 
-#include <cstring>
 #include <ipmiblob/test/blob_interface_mock.hpp>
 
+#include <cstring>
+
 #include <gtest/gtest.h>
 
 namespace host_tool
diff --git a/tools/test/tools_updater_unittest.cpp b/tools/test/tools_updater_unittest.cpp
index b9f80ad..0e9a217 100644
--- a/tools/test/tools_updater_unittest.cpp
+++ b/tools/test/tools_updater_unittest.cpp
@@ -7,6 +7,7 @@
 #include "util.hpp"
 
 #include <ipmiblob/test/blob_interface_mock.hpp>
+
 #include <string>
 
 #include <gtest/gtest.h>
diff --git a/tools/updater.cpp b/tools/updater.cpp
index 8639edd..87962b9 100644
--- a/tools/updater.cpp
+++ b/tools/updater.cpp
@@ -22,9 +22,10 @@
 #include "tool_errors.hpp"
 #include "util.hpp"
 
+#include <ipmiblob/blob_errors.hpp>
+
 #include <algorithm>
 #include <cstring>
-#include <ipmiblob/blob_errors.hpp>
 #include <memory>
 #include <string>
 #include <thread>
diff --git a/tools/updater.hpp b/tools/updater.hpp
index 4cae534..739d3e9 100644
--- a/tools/updater.hpp
+++ b/tools/updater.hpp
@@ -3,6 +3,7 @@
 #include "handler.hpp"
 
 #include <ipmiblob/blob_interface.hpp>
+
 #include <string>
 
 namespace host_tool
