diff --git a/control/json/zone.cpp b/control/json/zone.cpp
index 3c3f0b3..485773c 100644
--- a/control/json/zone.cpp
+++ b/control/json/zone.cpp
@@ -261,11 +261,6 @@
                     "Configured property function not available");
             }
             auto zHandler = propFunc->second(property, persist);
-            // Only add non-null zone handler functions
-            if (zHandler)
-            {
-                _zoneHandlers.emplace_back(zHandler);
-            }
         }
     }
 }
diff --git a/control/json/zone.hpp b/control/json/zone.hpp
index 6f80aa5..9a0afb2 100644
--- a/control/json/zone.hpp
+++ b/control/json/zone.hpp
@@ -139,21 +139,6 @@
     }
 
     /**
-     * @brief Get the configuration of zone interface handlers
-     *
-     * Interfaces hosted by a zone can optionally be configured to set their
-     * property values and/or persistency. These interfaces must be supported
-     * by the zone object they are configured for.
-     *
-     * @return List of zone interface handler functions that set an interface's
-     * property values and persistency states
-     */
-    inline const auto& getZoneHandlers() const
-    {
-        return _zoneHandlers;
-    }
-
-    /**
      * @brief Add a fan object to the zone
      *
      * @param[in] fan - Unique pointer to a fan object that will be moved into
@@ -242,12 +227,6 @@
     /* Map of interfaces to persisted properties the zone hosts*/
     std::map<std::string, std::vector<std::string>> _propsPersisted;
 
-    /**
-     * Zone interface handler functions for its
-     * configured interfaces (OPTIONAL)
-     */
-    std::vector<ZoneHandler> _zoneHandlers;
-
     /* Interface to property mapping of their associated handler function */
     static const std::map<std::string, std::map<std::string, propHandler>>
         _intfPropHandlers;
diff --git a/control/json_parser.cpp b/control/json_parser.cpp
index 29af22d..12c2c99 100644
--- a/control/json_parser.cpp
+++ b/control/json_parser.cpp
@@ -135,7 +135,7 @@
             zoneDefs.emplace_back(std::make_tuple(
                 zoneNum, zone.second->getDefaultCeiling(),
                 zone.second->getDefaultFloor(), zone.second->getIncDelay(),
-                zone.second->getDecInterval(), zone.second->getZoneHandlers(),
+                zone.second->getDecInterval(), std::vector<ZoneHandler>{},
                 std::move(fanDefs), std::move(speedEvents)));
         }
     }
