diff --git a/Makefile.am b/Makefile.am
index b859f32..7465a72 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -79,6 +79,7 @@
 	$(CODE_COVERAGE_CXXFLAGS)
 
 libswampd_la_SOURCES = \
+	util.cpp \
 	notimpl/readonly.cpp \
 	notimpl/writeonly.cpp \
 	dbus/dbusconfiguration.cpp \
diff --git a/conf.hpp b/conf.hpp
index 428d446..f2157e1 100644
--- a/conf.hpp
+++ b/conf.hpp
@@ -60,5 +60,7 @@
 
 using PIDConf = std::map<std::string, struct ControllerInfo>;
 
+constexpr bool DEBUG = false; // enable to print found configuration
+
 } // namespace conf
 } // namespace pid_control
diff --git a/dbus/dbusconfiguration.cpp b/dbus/dbusconfiguration.cpp
index a33a966..09f0d88 100644
--- a/dbus/dbusconfiguration.cpp
+++ b/dbus/dbusconfiguration.cpp
@@ -37,8 +37,6 @@
 namespace pid_control
 {
 
-static constexpr bool DEBUG = false; // enable to print found configuration
-
 extern std::map<std::string, struct conf::SensorConfig> sensorConfig;
 extern std::map<int64_t, conf::PIDConf> zoneConfig;
 extern std::map<int64_t, struct conf::ZoneConfig> zoneDetailsConfig;
@@ -87,74 +85,6 @@
     return retString;
 }
 
-// this function prints the configuration into a form similar to the cpp
-// generated code to help in verification, should be turned off during normal
-// use
-void debugPrint(void)
-{
-    // print sensor config
-    std::cout << "sensor config:\n";
-    std::cout << "{\n";
-    for (const auto& pair : sensorConfig)
-    {
-
-        std::cout << "\t{" << pair.first << ",\n\t\t{";
-        std::cout << pair.second.type << ", ";
-        std::cout << pair.second.readPath << ", ";
-        std::cout << pair.second.writePath << ", ";
-        std::cout << pair.second.min << ", ";
-        std::cout << pair.second.max << ", ";
-        std::cout << pair.second.timeout << "},\n\t},\n";
-    }
-    std::cout << "}\n\n";
-    std::cout << "ZoneDetailsConfig\n";
-    std::cout << "{\n";
-    for (const auto& zone : zoneDetailsConfig)
-    {
-        std::cout << "\t{" << zone.first << ",\n";
-        std::cout << "\t\t{" << zone.second.minThermalOutput << ", ";
-        std::cout << zone.second.failsafePercent << "}\n\t},\n";
-    }
-    std::cout << "}\n\n";
-    std::cout << "ZoneConfig\n";
-    std::cout << "{\n";
-    for (const auto& zone : zoneConfig)
-    {
-        std::cout << "\t{" << zone.first << "\n";
-        for (const auto& pidconf : zone.second)
-        {
-            std::cout << "\t\t{" << pidconf.first << ",\n";
-            std::cout << "\t\t\t{" << pidconf.second.type << ",\n";
-            std::cout << "\t\t\t{";
-            for (const auto& input : pidconf.second.inputs)
-            {
-                std::cout << "\n\t\t\t" << input << ",\n";
-            }
-            std::cout << "\t\t\t}\n";
-            std::cout << "\t\t\t" << pidconf.second.setpoint << ",\n";
-            std::cout << "\t\t\t{" << pidconf.second.pidInfo.ts << ",\n";
-            std::cout << "\t\t\t" << pidconf.second.pidInfo.proportionalCoeff
-                      << ",\n";
-            std::cout << "\t\t\t" << pidconf.second.pidInfo.integralCoeff
-                      << ",\n";
-            std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdOffset
-                      << ",\n";
-            std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdGain
-                      << ",\n";
-            std::cout << "\t\t\t{" << pidconf.second.pidInfo.integralLimit.min
-                      << "," << pidconf.second.pidInfo.integralLimit.max
-                      << "},\n";
-            std::cout << "\t\t\t{" << pidconf.second.pidInfo.outLim.min << ","
-                      << pidconf.second.pidInfo.outLim.max << "},\n";
-            std::cout << "\t\t\t" << pidconf.second.pidInfo.slewNeg << ",\n";
-            std::cout << "\t\t\t" << pidconf.second.pidInfo.slewPos << ",\n";
-            std::cout << "\t\t\t}\n\t\t}\n";
-        }
-        std::cout << "\t},\n";
-    }
-    std::cout << "}\n\n";
-}
-
 std::vector<std::string> getSelectedProfiles(sdbusplus::bus::bus& bus)
 {
     std::vector<std::string> ret;
@@ -211,7 +141,7 @@
             ret.emplace_back(std::move(mode));
         }
     }
-    if constexpr (DEBUG)
+    if constexpr (pid_control::conf::DEBUG)
     {
         std::cout << "Profiles selected: ";
         for (const auto& profile : ret)
@@ -949,9 +879,9 @@
             }
         }
     }
-    if constexpr (DEBUG)
+    if constexpr (pid_control::conf::DEBUG)
     {
-        debugPrint();
+        debugPrint(sensorConfig, zoneConfig, zoneDetailsConfig);
     }
     if (zoneConfig.empty() || zoneDetailsConfig.empty())
     {
diff --git a/util.cpp b/util.cpp
new file mode 100644
index 0000000..4ecd8ce
--- /dev/null
+++ b/util.cpp
@@ -0,0 +1,99 @@
+/*
+// Copyright (c) 2018 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+#include "util.hpp"
+
+#include "conf.hpp"
+
+#include <cstdint>
+#include <iostream>
+#include <map>
+#include <string>
+
+namespace pid_control
+{
+
+void debugPrint(const std::map<std::string, conf::SensorConfig>& sensorConfig,
+                const std::map<int64_t, conf::PIDConf>& zoneConfig,
+                const std::map<int64_t, conf::ZoneConfig>& zoneDetailsConfig)
+{
+    if constexpr (!conf::DEBUG)
+    {
+        return;
+    }
+    // print sensor config
+    std::cout << "sensor config:\n";
+    std::cout << "{\n";
+    for (const auto& pair : sensorConfig)
+    {
+
+        std::cout << "\t{" << pair.first << ",\n\t\t{";
+        std::cout << pair.second.type << ", ";
+        std::cout << pair.second.readPath << ", ";
+        std::cout << pair.second.writePath << ", ";
+        std::cout << pair.second.min << ", ";
+        std::cout << pair.second.max << ", ";
+        std::cout << pair.second.timeout << "},\n\t},\n";
+    }
+    std::cout << "}\n\n";
+    std::cout << "ZoneDetailsConfig\n";
+    std::cout << "{\n";
+    for (const auto& zone : zoneDetailsConfig)
+    {
+        std::cout << "\t{" << zone.first << ",\n";
+        std::cout << "\t\t{" << zone.second.minThermalOutput << ", ";
+        std::cout << zone.second.failsafePercent << "}\n\t},\n";
+    }
+    std::cout << "}\n\n";
+    std::cout << "ZoneConfig\n";
+    std::cout << "{\n";
+    for (const auto& zone : zoneConfig)
+    {
+        std::cout << "\t{" << zone.first << "\n";
+        for (const auto& pidconf : zone.second)
+        {
+            std::cout << "\t\t{" << pidconf.first << ",\n";
+            std::cout << "\t\t\t{" << pidconf.second.type << ",\n";
+            std::cout << "\t\t\t{";
+            for (const auto& input : pidconf.second.inputs)
+            {
+                std::cout << "\n\t\t\t" << input << ",\n";
+            }
+            std::cout << "\t\t\t}\n";
+            std::cout << "\t\t\t" << pidconf.second.setpoint << ",\n";
+            std::cout << "\t\t\t{" << pidconf.second.pidInfo.ts << ",\n";
+            std::cout << "\t\t\t" << pidconf.second.pidInfo.proportionalCoeff
+                      << ",\n";
+            std::cout << "\t\t\t" << pidconf.second.pidInfo.integralCoeff
+                      << ",\n";
+            std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdOffset
+                      << ",\n";
+            std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdGain
+                      << ",\n";
+            std::cout << "\t\t\t{" << pidconf.second.pidInfo.integralLimit.min
+                      << "," << pidconf.second.pidInfo.integralLimit.max
+                      << "},\n";
+            std::cout << "\t\t\t{" << pidconf.second.pidInfo.outLim.min << ","
+                      << pidconf.second.pidInfo.outLim.max << "},\n";
+            std::cout << "\t\t\t" << pidconf.second.pidInfo.slewNeg << ",\n";
+            std::cout << "\t\t\t" << pidconf.second.pidInfo.slewPos << ",\n";
+            std::cout << "\t\t\t}\n\t\t}\n";
+        }
+        std::cout << "\t},\n";
+    }
+    std::cout << "}\n\n";
+}
+
+} // namespace pid_control
diff --git a/util.hpp b/util.hpp
index efe920c..032e1ca 100644
--- a/util.hpp
+++ b/util.hpp
@@ -1,11 +1,14 @@
 #pragma once
 
+#include "conf.hpp"
 #include "pid/ec/pid.hpp"
 
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
 
+#include <cstdint>
 #include <limits>
+#include <map>
 #include <string>
 
 namespace pid_control
@@ -37,4 +40,11 @@
  */
 std::string FixupPath(std::string original);
 
+/*
+ * Dump active configuration.
+ */
+void debugPrint(const std::map<std::string, conf::SensorConfig>& sensorConfig,
+                const std::map<int64_t, conf::PIDConf>& zoneConfig,
+                const std::map<int64_t, conf::ZoneConfig>& zoneDetailsConfig);
+
 } // namespace pid_control
