diff --git a/monitor/trust_group.hpp b/monitor/trust_group.hpp
index 53ed610..e2cb269 100644
--- a/monitor/trust_group.hpp
+++ b/monitor/trust_group.hpp
@@ -55,8 +55,7 @@
      *
      * @param[in] names - the names and inclusion of sensors in the group
      */
-    explicit Group(const std::vector<GroupDefinition>& names) : _names(names)
-    {}
+    explicit Group(const std::vector<GroupDefinition>& names) : _names(names) {}
 
     /**
      * Used to register a TachSensor object with the group.
@@ -67,11 +66,11 @@
      */
     void registerSensor(std::shared_ptr<monitor::TachSensor>& sensor)
     {
-        auto found = std::find_if(
-            _names.begin(), _names.end(), [&sensor](const auto& name) {
-                return monitor::FAN_SENSOR_PATH + std::get<sensorName>(name) ==
-                       sensor->name();
-            });
+        auto found = std::find_if(_names.begin(), _names.end(),
+                                  [&sensor](const auto& name) {
+            return monitor::FAN_SENSOR_PATH + std::get<sensorName>(name) ==
+                   sensor->name();
+        });
 
         if (found != _names.end())
         {
@@ -91,8 +90,8 @@
     {
         return (std::find_if(_sensors.begin(), _sensors.end(),
                              [&sensor](const auto& s) {
-                                 return sensor.name() == s.sensor->name();
-                             }) != _sensors.end());
+            return sensor.name() == s.sensor->name();
+                }) != _sensors.end());
     }
 
     /**
