diff --git a/include/pulse_event_monitor.hpp b/include/pulse_event_monitor.hpp
index 0ad6b38..131dc76 100644
--- a/include/pulse_event_monitor.hpp
+++ b/include/pulse_event_monitor.hpp
@@ -19,8 +19,8 @@
 #include <sel_logger.hpp>
 #include <sensorutils.hpp>
 
-inline static sdbusplus::bus::match_t
-    startPulseEventMonitor(std::shared_ptr<sdbusplus::asio::connection> conn)
+inline static sdbusplus::bus::match_t startPulseEventMonitor(
+    std::shared_ptr<sdbusplus::asio::connection> conn)
 {
     auto pulseEventMatcherCallback = [conn](sdbusplus::message_t& msg) {
         std::string thresholdInterface;
diff --git a/include/sel_logger.hpp b/include/sel_logger.hpp
index a51a01c..2b01fa2 100644
--- a/include/sel_logger.hpp
+++ b/include/sel_logger.hpp
@@ -41,8 +41,8 @@
 #endif
 
 template <typename... T>
-static uint16_t
-    selAddSystemRecord(std::shared_ptr<sdbusplus::asio::connection> conn,
-                       const std::string& message, const std::string& path,
-                       const std::vector<uint8_t>& selData, const bool& assert,
-                       const uint16_t& genId, T&&... metadata);
+static uint16_t selAddSystemRecord(
+    std::shared_ptr<sdbusplus::asio::connection> conn,
+    const std::string& message, const std::string& path,
+    const std::vector<uint8_t>& selData, const bool& assert,
+    const uint16_t& genId, T&&... metadata);
diff --git a/include/watchdog_event_monitor.hpp b/include/watchdog_event_monitor.hpp
index 777ac16..990e25e 100644
--- a/include/watchdog_event_monitor.hpp
+++ b/include/watchdog_event_monitor.hpp
@@ -234,8 +234,8 @@
     }
 }
 
-inline static sdbusplus::bus::match_t
-    startWatchdogEventMonitor(std::shared_ptr<sdbusplus::asio::connection> conn)
+inline static sdbusplus::bus::match_t startWatchdogEventMonitor(
+    std::shared_ptr<sdbusplus::asio::connection> conn)
 {
     auto watchdogEventMatcherCallback = [conn](sdbusplus::message_t& msg) {
         std::string expiredAction;
