diff --git a/src/entity_manager/power_status_monitor.cpp b/src/entity_manager/power_status_monitor.cpp
index cd8b9ca..93617d2 100644
--- a/src/entity_manager/power_status_monitor.cpp
+++ b/src/entity_manager/power_status_monitor.cpp
@@ -1,10 +1,12 @@
 #include "power_status_monitor.hpp"
 
+#include "phosphor-logging/lg2.hpp"
 #include "utils.hpp"
 
-#include <boost/algorithm/string/predicate.hpp>
 #include <sdbusplus/bus/match.hpp>
 
+#include <flat_map>
+
 namespace power
 {
 
@@ -22,6 +24,21 @@
     return powerStatusOn;
 }
 
+void PowerStatusMonitor::handlePowerMatch(sdbusplus::message_t& message)
+{
+    lg2::debug("power match triggered");
+
+    std::string objectName;
+    std::flat_map<std::string, std::variant<std::string>> values;
+    message.read(objectName, values);
+    auto findState = values.find(power::property);
+    if (findState != values.end())
+    {
+        powerStatusOn =
+            std::get<std::string>(findState->second).ends_with("Running");
+    }
+}
+
 void PowerStatusMonitor::setupPowerMatch(
     const std::shared_ptr<sdbusplus::asio::connection>& conn)
 {
@@ -31,18 +48,7 @@
             std::string(em_utils::properties::interface) + "',path='" +
             std::string(power::path) + "',arg0='" +
             std::string(power::interface) + "'",
-        [this](sdbusplus::message_t& message) {
-            std::string objectName;
-            boost::container::flat_map<std::string, std::variant<std::string>>
-                values;
-            message.read(objectName, values);
-            auto findState = values.find(power::property);
-            if (findState != values.end())
-            {
-                powerStatusOn = boost::ends_with(
-                    std::get<std::string>(findState->second), "Running");
-            }
-        });
+        std::bind_front(&PowerStatusMonitor::handlePowerMatch, this));
 
     conn->async_method_call(
         [this](boost::system::error_code ec,
@@ -51,8 +57,7 @@
             {
                 return;
             }
-            powerStatusOn =
-                boost::ends_with(std::get<std::string>(state), "Running");
+            powerStatusOn = std::get<std::string>(state).ends_with("Running");
         },
         power::busname, power::path, em_utils::properties::interface,
         em_utils::properties::get, power::interface, power::property);
diff --git a/src/entity_manager/power_status_monitor.hpp b/src/entity_manager/power_status_monitor.hpp
index e70031e..0955607 100644
--- a/src/entity_manager/power_status_monitor.hpp
+++ b/src/entity_manager/power_status_monitor.hpp
@@ -14,6 +14,8 @@
         const std::shared_ptr<sdbusplus::asio::connection>& conn);
 
   private:
+    void handlePowerMatch(sdbusplus::message_t& message);
+
     bool powerStatusOn = false;
     std::unique_ptr<sdbusplus::bus::match_t> powerMatch = nullptr;
 };
