diff --git a/settings.cpp b/settings.cpp
index f2f66a9..b243487 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
 {
@@ -14,14 +16,12 @@
 constexpr auto mapperIntf = "xyz.openbmc_project.ObjectMapper";
 
 Objects::Objects(sdbusplus::bus::bus& bus,
-                 const std::vector<Interface>& filter):
+                 const std::vector<Interface>& filter) :
     bus(bus)
 {
     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);
@@ -65,10 +65,8 @@
 Service Objects::service(const Path& path, const Interface& interface) const
 {
     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}));
 
@@ -118,12 +116,9 @@
     const Path& oneTimeSetting = paths[index];
     const Path& regularSetting = paths[!index];
 
-    auto method =
-        objects.bus.new_method_call(
-            objects.service(oneTimeSetting, iface).c_str(),
-            oneTimeSetting.c_str(),
-            propIntf,
-            "Get");
+    auto method = objects.bus.new_method_call(
+        objects.service(oneTimeSetting, iface).c_str(), oneTimeSetting.c_str(),
+        propIntf, "Get");
     method.append(enabledIntf, "Enabled");
     auto reply = objects.bus.call(method);
     if (reply.is_method_error())
