diff --git a/control/zone.hpp b/control/zone.hpp
index 985a46d..601c002 100644
--- a/control/zone.hpp
+++ b/control/zone.hpp
@@ -1,6 +1,7 @@
 #pragma once
 #include <vector>
 #include <sdbusplus/bus.hpp>
+#include <sdbusplus/server.hpp>
 #include "fan.hpp"
 #include "types.hpp"
 
@@ -56,6 +57,20 @@
             }
         }
 
+        /**
+         * @brief Sets a given object's property value
+         *
+         * @param[in] object - Name of the object containing the property
+         * @param[in] property - Property name
+         * @param[in] value - Property value
+         */
+        void setPropertyValue(const char* object,
+                              const char* property,
+                              bool value)
+        {
+            _properties[object][property] = value;
+        };
+
     private:
 
         /**
@@ -77,6 +92,41 @@
          * The vector of fans in this zone
          */
         std::vector<std::unique_ptr<Fan>> _fans;
+
+        /**
+         * @brief Map of object property values
+         */
+        std::map<std::string, std::map<std::string, bool>> _properties;
+
+        /**
+         * @brief List of signal event arguments
+         */
+        std::vector<std::unique_ptr<SignalEvent>> _signalEvents;
+
+        /**
+         * @brief list of Dbus matches for callbacks
+         */
+        std::vector<sdbusplus::server::match::match> _matches;
+
+        /**
+         * @brief Dbus signal change handler
+         *
+         * @param[in] msg - Data associated with the subscribed signal
+         * @param[in] data - Pointer to the event sensor's data
+         * @param[in] err - Contains any sdbus error reference if occurred
+         */
+        static int signalHandler(sd_bus_message* msg,
+                                 void* data,
+                                 sd_bus_error* err);
+
+         /**
+          * @brief Envokes the assigned handler and action
+          *
+          * @param[in] msg - Expanded sdbusplus message data
+          * @param[in] eventData - The event's data
+          */
+         void handleEvent(sdbusplus::message::message& msg,
+                          const Handler& handler);
 };
 
 }
