diff --git a/sensors/host.cpp b/sensors/host.cpp
index ae63896..51d38a4 100644
--- a/sensors/host.cpp
+++ b/sensors/host.cpp
@@ -33,13 +33,12 @@
     }
 }
 
-std::unique_ptr<Sensor> HostSensor::createTemp(const std::string& name,
-                                               int64_t timeout,
-                                               sdbusplus::bus_t& bus,
-                                               const char* objPath, bool defer)
+std::unique_ptr<Sensor> HostSensor::createTemp(
+    const std::string& name, int64_t timeout, sdbusplus::bus_t& bus,
+    const char* objPath, bool defer)
 {
-    auto sensor = std::make_unique<HostSensor>(name, timeout, bus, objPath,
-                                               defer);
+    auto sensor =
+        std::make_unique<HostSensor>(name, timeout, bus, objPath, defer);
     sensor->value(0);
 
     // DegreesC and value of 0 are the defaults at present, therefore testing
diff --git a/sensors/host.hpp b/sensors/host.hpp
index 83b9889..b97b137 100644
--- a/sensors/host.hpp
+++ b/sensors/host.hpp
@@ -39,10 +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) :
diff --git a/sensors/pluggable.hpp b/sensors/pluggable.hpp
index 0dc1c71..bd5bc1f 100644
--- a/sensors/pluggable.hpp
+++ b/sensors/pluggable.hpp
@@ -18,8 +18,8 @@
     PluggableSensor(const std::string& name, int64_t timeout,
                     std::unique_ptr<ReadInterface> reader,
                     std::unique_ptr<WriteInterface> writer) :
-        Sensor(name, timeout),
-        _reader(std::move(reader)), _writer(std::move(writer))
+        Sensor(name, timeout), _reader(std::move(reader)),
+        _writer(std::move(writer))
     {}
 
     ReadReturn read(void) override;
