diff --git a/control/json/manager.hpp b/control/json/manager.hpp
index c169919..ad92720 100644
--- a/control/json/manager.hpp
+++ b/control/json/manager.hpp
@@ -227,18 +227,16 @@
                     if (!profiles.empty() &&
                         !std::any_of(profiles.begin(), profiles.end(),
                                      [](const auto& name) {
-                                         return std::find(
-                                                    getActiveProfiles().begin(),
-                                                    getActiveProfiles().end(),
-                                                    name) !=
-                                                getActiveProfiles().end();
-                                     }))
+                        return std::find(getActiveProfiles().begin(),
+                                         getActiveProfiles().end(),
+                                         name) != getActiveProfiles().end();
+                        }))
                     {
                         continue;
                     }
                 }
-                auto obj =
-                    std::make_unique<T>(entry, std::forward<Args>(args)...);
+                auto obj = std::make_unique<T>(entry,
+                                               std::forward<Args>(args)...);
                 config.emplace(
                     std::make_pair(obj->getName(), obj->getProfiles()),
                     std::move(obj));
