diff --git a/presence/tach_sensor.cpp b/presence/tach_sensor.cpp
index c21478b..60da441 100644
--- a/presence/tach_sensor.cpp
+++ b/presence/tach_sensor.cpp
@@ -30,35 +30,18 @@
     return (tach != 0);
 }
 
-// Tach signal callback handler
-int TachSensor::handleTachChangeSignal(sd_bus_message* msg,
-                                       void* usrData,
-                                       sd_bus_error* err)
-{
-    auto sdbpMsg = sdbusplus::message::message(msg);
-    static_cast<TachSensor*>(usrData)->handleTachChange(sdbpMsg, err);
-    return 0;
-}
-
-void TachSensor::handleTachChange(sdbusplus::message::message& sdbpMsg,
-                                  sd_bus_error* err)
+void TachSensor::handleTachChange(sdbusplus::message::message& sdbpMsg)
 {
     std::string msgSensor;
     std::map<std::string, sdbusplus::message::variant<int64_t>> msgData;
     sdbpMsg.read(msgSensor, msgData);
 
-    // TODO openbmc/phosphor-fan-presence#5
-    //      Update to use 'arg0namespace' match option to reduce dbus traffic
-    // Find interface with value property
-    if (msgSensor.compare("xyz.openbmc_project.Sensor.Value") == 0)
+    // Find the 'Value' property containing tach
+    auto valPropMap = msgData.find("Value");
+    if (valPropMap != msgData.end())
     {
-        // Find the 'Value' property containing tach
-        auto valPropMap = msgData.find("Value");
-        if (valPropMap != msgData.end())
-        {
-            tach = sdbusplus::message::variant_ns::get<int64_t>(
-                valPropMap->second);
-        }
+        tach = sdbusplus::message::variant_ns::get<int64_t>(
+            valPropMap->second);
     }
     // Update inventory according to latest tach reported
     fanEnc.updInventory();
