diff --git a/control/zone.cpp b/control/zone.cpp
index 46e1f08..b1badc1 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -409,10 +409,9 @@
                         const std::vector<Action>& eventActions)
 {
     // Perform the actions
-    std::for_each(eventActions.begin(), eventActions.end(),
-                  [this, &eventGroup](const auto& action) {
-        action(*this, eventGroup);
-    });
+    std::for_each(
+        eventActions.begin(), eventActions.end(),
+        [this, &eventGroup](const auto& action) { action(*this, eventGroup); });
 }
 
 void Zone::handleEvent(sdbusplus::message_t& msg, const EventData* eventData)
@@ -436,10 +435,9 @@
     {
         for (auto& serv : srvIter->second)
         {
-            auto it = std::find_if(serv.second.begin(), serv.second.end(),
-                                   [&intf](const auto& interface) {
-                return intf == interface;
-            });
+            auto it = std::find_if(
+                serv.second.begin(), serv.second.end(),
+                [&intf](const auto& interface) { return intf == interface; });
             if (it != std::end(serv.second))
             {
                 // Service found
