diff --git a/sensors/builder.cpp b/sensors/builder.cpp
index 7c335c6..e71e9ce 100644
--- a/sensors/builder.cpp
+++ b/sensors/builder.cpp
@@ -42,9 +42,9 @@
 
 static constexpr bool deferSignals = true;
 
-SensorManager
-    buildSensors(const std::map<std::string, conf::SensorConfig>& config,
-                 sdbusplus::bus_t& passive, sdbusplus::bus_t& host)
+SensorManager buildSensors(
+    const std::map<std::string, conf::SensorConfig>& config,
+    sdbusplus::bus_t& passive, sdbusplus::bus_t& host)
 {
     SensorManager mgmr(passive, host);
     auto& hostSensorBus = mgmr.getHostBus();
diff --git a/sensors/builder.hpp b/sensors/builder.hpp
index 14eabad..345da5d 100644
--- a/sensors/builder.hpp
+++ b/sensors/builder.hpp
@@ -15,8 +15,8 @@
 /**
  * Build the sensors and associate them with a SensorManager.
  */
-SensorManager
-    buildSensors(const std::map<std::string, conf::SensorConfig>& config,
-                 sdbusplus::bus_t& passive, sdbusplus::bus_t& host);
+SensorManager buildSensors(
+    const std::map<std::string, conf::SensorConfig>& config,
+    sdbusplus::bus_t& passive, sdbusplus::bus_t& host);
 
 } // namespace pid_control
diff --git a/sensors/buildjson.hpp b/sensors/buildjson.hpp
index 2075d30..4233cc0 100644
--- a/sensors/buildjson.hpp
+++ b/sensors/buildjson.hpp
@@ -20,7 +20,7 @@
  * @param[in] data - the json data
  * @return a map of sensors.
  */
-std::map<std::string, conf::SensorConfig>
-    buildSensorsFromJson(const json& data);
+std::map<std::string, conf::SensorConfig> buildSensorsFromJson(
+    const json& data);
 
 } // namespace pid_control
diff --git a/sensors/host.hpp b/sensors/host.hpp
index b97b137..170d94a 100644
--- a/sensors/host.hpp
+++ b/sensors/host.hpp
@@ -39,9 +39,9 @@
 class HostSensor : public Sensor, public ValueObject
 {
   public:
-    static std::unique_ptr<Sensor>
-        createTemp(const std::string& name, int64_t timeout,
-                   sdbusplus::bus_t& bus, const char* objPath, bool defer);
+    static std::unique_ptr<Sensor> createTemp(
+        const std::string& name, int64_t timeout, sdbusplus::bus_t& bus,
+        const char* objPath, bool defer);
 
     HostSensor(const std::string& name, int64_t timeout, sdbusplus::bus_t& bus,
                const char* objPath, bool defer) :
