diff --git a/control/fanctl.cpp b/control/fanctl.cpp
index 6f4a133..280fbe5 100644
--- a/control/fanctl.cpp
+++ b/control/fanctl.cpp
@@ -57,7 +57,7 @@
  * @return just the fan name.
  */
 
-std::string justFanName(std::string const& path)
+std::string justFanName(const std::string& path)
 {
     std::string fanName;
 
@@ -161,8 +161,8 @@
     }
 
     // load tach sensor paths for each fan
-    pathMap["tach"] =
-        getPathsFromIface(paths["tach"], interfaces["SensorValue"], fanNames);
+    pathMap["tach"] = getPathsFromIface(paths["tach"],
+                                        interfaces["SensorValue"], fanNames);
 
     // load inventory Item data for each fan
     pathMap["inventory"] = getPathsFromIface(
@@ -220,18 +220,18 @@
 
     std::string path("/xyz/openbmc_project/state/bmc0");
     std::string iface("xyz.openbmc_project.State.BMC");
-    ret[3] =
-        SDBusPlus::getProperty<std::string>(path, iface, "CurrentBMCState");
+    ret[3] = SDBusPlus::getProperty<std::string>(path, iface,
+                                                 "CurrentBMCState");
 
     path = "/xyz/openbmc_project/state/chassis0";
     iface = "xyz.openbmc_project.State.Chassis";
-    ret[4] =
-        SDBusPlus::getProperty<std::string>(path, iface, "CurrentPowerState");
+    ret[4] = SDBusPlus::getProperty<std::string>(path, iface,
+                                                 "CurrentPowerState");
 
     path = "/xyz/openbmc_project/state/host0";
     iface = "xyz.openbmc_project.State.Host";
-    ret[5] =
-        SDBusPlus::getProperty<std::string>(path, iface, "CurrentHostState");
+    ret[5] = SDBusPlus::getProperty<std::string>(path, iface,
+                                                 "CurrentHostState");
 
     return ret;
 }
@@ -724,8 +724,8 @@
 
 #ifdef CONTROL_USE_JSON
     // Query dump
-    auto cmdDumpQuery =
-        commands->add_subcommand("query_dump", "Query the dump file");
+    auto cmdDumpQuery = commands->add_subcommand("query_dump",
+                                                 "Query the dump file");
 
     cmdDumpQuery->set_help_flag("-h, --help", "Query the dump file");
     cmdDumpQuery
