diff --git a/extensions/openpower-pels/data_interface.hpp b/extensions/openpower-pels/data_interface.hpp
index 9a48721..385b07a 100644
--- a/extensions/openpower-pels/data_interface.hpp
+++ b/extensions/openpower-pels/data_interface.hpp
@@ -279,17 +279,6 @@
                                                 bool expanded) const = 0;
 
     /**
-     * @brief Returns the fault LED group D-Bus path for the inventory
-     *        D-Bus path passed in.
-     *
-     * @param[in] inventoryPath - The inventory D-Bus path
-     *
-     * @return std::string - The fault LED group D-Bus path
-     */
-    virtual std::string
-        getFaultLEDGroup(const std::string& inventoryPath) const = 0;
-
-    /**
      * @brief Sets the Asserted property on the LED group passed in.
      *
      * @param[in] ledGroup - The LED group D-Bus path
@@ -298,6 +287,16 @@
     virtual void assertLEDGroup(const std::string& ledGroup,
                                 bool value) const = 0;
 
+    /**
+     * @brief Sets the Functional property on the OperationalStatus
+     *        interface on a D-Bus object.
+     *
+     * @param[in] objectPath - The D-Bus object path
+     * @param[in] functional - The value
+     */
+    virtual void setFunctional(const std::string& objectPath,
+                               bool functional) const = 0;
+
   protected:
     /**
      * @brief Sets the host on/off state and runs any
@@ -528,17 +527,6 @@
                                         bool expanded) const override;
 
     /**
-     * @brief Returns the fault LED group D-Bus path for the inventory
-     *        D-Bus path passed in.
-     *
-     * @param[in] inventoryPath - The inventory D-Bus path
-     *
-     * @return std::string - The fault LED group D-Bus path
-     */
-    std::string
-        getFaultLEDGroup(const std::string& inventoryPath) const override;
-
-    /**
      * @brief Sets the Asserted property on the LED group passed in.
      *
      * @param[in] ledGroup - The LED group D-Bus path
@@ -546,6 +534,16 @@
      */
     void assertLEDGroup(const std::string& ledGroup, bool value) const override;
 
+    /**
+     * @brief Sets the Functional property on the OperationalStatus
+     *        interface on a D-Bus object.
+     *
+     * @param[in] objectPath - The D-Bus object path
+     * @param[in] functional - The value
+     */
+    void setFunctional(const std::string& objectPath,
+                       bool functional) const override;
+
   private:
     /**
      * @brief Reads the BMC firmware version string and puts it into
