diff --git a/meson.build b/meson.build
index 87fd97b..7ea0f28 100644
--- a/meson.build
+++ b/meson.build
@@ -206,8 +206,10 @@
             'systemd_target_monitor.cpp',
             'systemd_target_parser.cpp',
             'systemd_target_signal.cpp',
+            'utils.cpp',
             dependencies: [
                 CLI11,
+                libgpiod,
                 nlohmann_json,
                 phosphorlogging,
                 sdbusplus,
@@ -289,8 +291,10 @@
       executable('test_systemd_signal',
           './test/systemd_signal.cpp',
           'systemd_target_signal.cpp',
+          'utils.cpp',
           dependencies: [
               gtest,
+              libgpiod,
               nlohmann_json,
               phosphorlogging,
               sdbusplus,
diff --git a/systemd_target_signal.cpp b/systemd_target_signal.cpp
index 5bf40af..5f7036f 100644
--- a/systemd_target_signal.cpp
+++ b/systemd_target_signal.cpp
@@ -1,5 +1,7 @@
 #include "systemd_target_signal.hpp"
 
+#include "utils.hpp"
+
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/lg2.hpp>
 #include <sdbusplus/exception.hpp>
@@ -19,26 +21,6 @@
 
 using sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure;
 
-void SystemdTargetLogging::createBmcDump()
-{
-    auto method = this->bus.new_method_call(
-        "xyz.openbmc_project.Dump.Manager", "/xyz/openbmc_project/dump/bmc",
-        "xyz.openbmc_project.Dump.Create", "CreateDump");
-    method.append(
-        std::vector<
-            std::pair<std::string, std::variant<std::string, uint64_t>>>());
-    try
-    {
-        this->bus.call_noreply(method);
-    }
-    catch (const sdbusplus::exception::exception& e)
-    {
-        error("Failed to create BMC dump, exception:{ERROR}", "ERROR", e);
-        // just continue, this is error path anyway so we're just collecting
-        // what we can
-    }
-}
-
 void SystemdTargetLogging::startBmcQuiesceTarget()
 {
     auto method = this->bus.new_method_call(
@@ -104,7 +86,7 @@
                 "UNIT", unit, "RESULT", result);
 
             // Generate a BMC dump when a monitored target fails
-            createBmcDump();
+            utils::createBmcDump(this->bus);
             return (targetEntry->second.errorToLog);
         }
     }
@@ -120,7 +102,7 @@
                 "UNIT", unit, "RESULT", result);
 
             // Generate a BMC dump when a critical service fails
-            createBmcDump();
+            utils::createBmcDump(this->bus);
             // Enter BMC Quiesce when a critical service fails
             startBmcQuiesceTarget();
             return (std::string{
diff --git a/systemd_target_signal.hpp b/systemd_target_signal.hpp
index 755c817..61f3f06 100644
--- a/systemd_target_signal.hpp
+++ b/systemd_target_signal.hpp
@@ -72,9 +72,6 @@
                                    const std::string& result);
 
   private:
-    /** @brief Call phosphor-dump-manager to create BMC dump */
-    void createBmcDump();
-
     /** @brief Start BMC Quiesce Target to indicate critical service failure */
     void startBmcQuiesceTarget();
 
diff --git a/utils.cpp b/utils.cpp
index 1e5e9e2..d925d4c 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -164,6 +164,26 @@
     }
 }
 
+void createBmcDump(sdbusplus::bus::bus& bus)
+{
+    auto method = bus.new_method_call(
+        "xyz.openbmc_project.Dump.Manager", "/xyz/openbmc_project/dump/bmc",
+        "xyz.openbmc_project.Dump.Create", "CreateDump");
+    method.append(
+        std::vector<
+            std::pair<std::string, std::variant<std::string, uint64_t>>>());
+    try
+    {
+        bus.call_noreply(method);
+    }
+    catch (const sdbusplus::exception::exception& e)
+    {
+        error("Failed to create BMC dump, exception:{ERROR}", "ERROR", e);
+        // just continue, this is error path anyway so we're just collecting
+        // what we can
+    }
+}
+
 } // namespace utils
 } // namespace manager
 } // namespace state
diff --git a/utils.hpp b/utils.hpp
index 410f972..e016d4f 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -66,6 +66,12 @@
     sdbusplus::bus::bus& bus, const std::string& errorMsg,
     sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level errLevel);
 
+/** @brief Call phosphor-dump-manager to create BMC user dump
+ *
+ * @param[in] bus          - The Dbus bus object
+ */
+void createBmcDump(sdbusplus::bus::bus& bus);
+
 } // namespace utils
 } // namespace manager
 } // namespace state
