diff --git a/control/json/zone.hpp b/control/json/zone.hpp
index 6ed90f8..5176c4b 100644
--- a/control/json/zone.hpp
+++ b/control/json/zone.hpp
@@ -296,6 +296,16 @@
     void setPersisted(const std::string& intf, const std::string& prop);
 
     /**
+     * @brief Is the property persisted
+     *
+     * @param[in] intf - Interface containing property
+     * @param[in] prop - Property to check if persisted
+     *
+     * @return - True if property is to be persisted, false otherwise
+     */
+    bool isPersisted(const std::string& intf, const std::string& prop) const;
+
+    /**
      * @brief Overridden thermal object's set 'Current' property function
      *
      * @param[in] value - Value to set 'Current' to
@@ -465,16 +475,6 @@
     void setInterfaces(const json& jsonObj);
 
     /**
-     * @brief Is the property persisted
-     *
-     * @param[in] intf - Interface containing property
-     * @param[in] prop - Property to check if persisted
-     *
-     * @return - True if property is to be persisted, false otherwise
-     */
-    bool isPersisted(const std::string& intf, const std::string& prop);
-
-    /**
      * @brief Save the thermal control current mode property to persisted
      * storage
      */
