diff --git a/association_manager.cpp b/association_manager.cpp
index 1b28ace..65897ca 100644
--- a/association_manager.cpp
+++ b/association_manager.cpp
@@ -144,18 +144,18 @@
 
         auto interface = std::find_if(object.begin(), object.end(),
                                       [&condition](const auto& i) {
-                                          return i.first == condition.interface;
-                                      });
+            return i.first == condition.interface;
+        });
         if (interface == object.end())
         {
             continue;
         }
 
-        auto property =
-            std::find_if(interface->second.begin(), interface->second.end(),
-                         [&condition](const auto& p) {
-                             return condition.property == p.first;
-                         });
+        auto property = std::find_if(interface->second.begin(),
+                                     interface->second.end(),
+                                     [&condition](const auto& p) {
+            return condition.property == p.first;
+        });
         if (property == interface->second.end())
         {
             continue;
