diff --git a/control/zone.cpp b/control/zone.cpp
index 1e50060..28b81f9 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -35,6 +35,22 @@
     {
         _fans.emplace_back(std::make_unique<Fan>(bus, def));
     }
+
+    // Setup signal trigger for property changes
+    for (auto& event : std::get<setSpeedEventsPos>(def))
+    {
+        for (auto& prop : event)
+        {
+            _signalEvents.emplace_back(
+                std::make_unique<SignalEvent>(this,
+                                              std::get<handlerObjPos>(prop)
+                                              ));
+            _matches.emplace_back(bus,
+                                  std::get<signaturePos>(prop).c_str(),
+                                  signalHandler,
+                                  _signalEvents.back().get());
+        }
+    }
 }
 
 
@@ -46,6 +62,26 @@
     }
 }
 
+int Zone::signalHandler(sd_bus_message* msg,
+                        void* data,
+                        sd_bus_error* err)
+{
+    auto sdbpMsg = sdbusplus::message::message(msg);
+    auto& signalEvent = *static_cast<SignalEvent*>(data);
+    std::get<zoneObjPos>(signalEvent)->handleEvent(
+        sdbpMsg,
+        std::get<handlerObjPos>(signalEvent));
+    return 0;
+}
+
+void Zone::handleEvent(sdbusplus::message::message& msg,
+                       const Handler& handler)
+{
+    // Handle the callback
+    handler(_bus, msg, *this);
+}
+
+
 }
 }
 }
