diff --git a/control/json/triggers/parameter.cpp b/control/json/triggers/parameter.cpp
index 6986608..1bec051 100644
--- a/control/json/triggers/parameter.cpp
+++ b/control/json/triggers/parameter.cpp
@@ -24,9 +24,9 @@
 
 using json = nlohmann::json;
 
-enableTrigger
-    triggerParameter(const json& jsonObj, const std::string& eventName,
-                     std::vector<std::unique_ptr<ActionBase>>& /*actions*/)
+enableTrigger triggerParameter(
+    const json& jsonObj, const std::string& eventName,
+    std::vector<std::unique_ptr<ActionBase>>& /*actions*/)
 {
     if (!jsonObj.contains("parameter"))
     {
diff --git a/control/json/triggers/parameter.hpp b/control/json/triggers/parameter.hpp
index ed7d4fa..8554b4d 100644
--- a/control/json/triggers/parameter.hpp
+++ b/control/json/triggers/parameter.hpp
@@ -34,8 +34,8 @@
  * @param[in] eventName - Name of event associated to the signal
  * @param[in] actions - Actions associated with the trigger
  */
-enableTrigger
-    triggerParameter(const json& jsonObj, const std::string& eventName,
-                     std::vector<std::unique_ptr<ActionBase>>& actions);
+enableTrigger triggerParameter(
+    const json& jsonObj, const std::string& eventName,
+    std::vector<std::unique_ptr<ActionBase>>& actions);
 
 } // namespace phosphor::fan::control::json::trigger::parameter
diff --git a/control/json/triggers/signal.cpp b/control/json/triggers/signal.cpp
index c0641d9..39c20b1 100644
--- a/control/json/triggers/signal.cpp
+++ b/control/json/triggers/signal.cpp
@@ -235,9 +235,9 @@
     }
 }
 
-enableTrigger
-    triggerSignal(const json& jsonObj, const std::string& eventName,
-                  std::vector<std::unique_ptr<ActionBase>>& /*actions*/)
+enableTrigger triggerSignal(
+    const json& jsonObj, const std::string& eventName,
+    std::vector<std::unique_ptr<ActionBase>>& /*actions*/)
 {
     auto subscriber = signals.end();
     if (jsonObj.contains("signal"))
diff --git a/control/json/triggers/timer.cpp b/control/json/triggers/timer.cpp
index 2036042..8acbc41 100644
--- a/control/json/triggers/timer.cpp
+++ b/control/json/triggers/timer.cpp
@@ -80,9 +80,9 @@
     return false;
 }
 
-enableTrigger
-    triggerTimer(const json& jsonObj, const std::string& /*eventName*/,
-                 std::vector<std::unique_ptr<ActionBase>>& /*actions*/)
+enableTrigger triggerTimer(
+    const json& jsonObj, const std::string& /*eventName*/,
+    std::vector<std::unique_ptr<ActionBase>>& /*actions*/)
 {
     // Get the type and interval of this timer from the JSON
     auto type = getType(jsonObj);
