diff --git a/settings.cpp b/settings.cpp
index 704905a..aeefe64 100644
--- a/settings.cpp
+++ b/settings.cpp
@@ -1,7 +1,9 @@
+#include "settings.hpp"
+
+#include "xyz/openbmc_project/Common/error.hpp"
+
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/log.hpp>
-#include "xyz/openbmc_project/Common/error.hpp"
-#include "settings.hpp"
 
 namespace settings
 {
@@ -16,13 +18,11 @@
 Objects::Objects()
 {
     auto bus = sdbusplus::bus::new_default();
-    std::vector<std::string> settingsIntfs =
-        {timeOwnerIntf, timeSyncIntf, hostStateIntf};
+    std::vector<std::string> settingsIntfs = {timeOwnerIntf, timeSyncIntf,
+                                              hostStateIntf};
     auto depth = 0;
 
-    auto mapperCall = bus.new_method_call(mapperService,
-                                          mapperPath,
-                                          mapperIntf,
+    auto mapperCall = bus.new_method_call(mapperService, mapperPath, mapperIntf,
                                           "GetSubTree");
     mapperCall.append(root);
     mapperCall.append(depth);
@@ -48,9 +48,9 @@
     for (const auto& iter : result)
     {
         const Path& path = iter.first;
-        for (const auto& service_iter: iter.second)
+        for (const auto& service_iter : iter.second)
         {
-            for (const Interface& interface: service_iter.second)
+            for (const Interface& interface : service_iter.second)
             {
                 if (timeOwnerIntf == interface)
                 {
@@ -73,10 +73,8 @@
 {
     auto bus = sdbusplus::bus::new_default();
     using Interfaces = std::vector<Interface>;
-    auto mapperCall = bus.new_method_call(mapperService,
-                                          mapperPath,
-                                          mapperIntf,
-                                          "GetObject");
+    auto mapperCall =
+        bus.new_method_call(mapperService, mapperPath, mapperIntf, "GetObject");
     mapperCall.append(path);
     mapperCall.append(Interfaces({interface}));
 
