diff --git a/control/json/manager.hpp b/control/json/manager.hpp
index 43b963c..5e5b33c 100644
--- a/control/json/manager.hpp
+++ b/control/json/manager.hpp
@@ -431,17 +431,6 @@
      */
     void load();
 
-    // TODO - Set power state to on until fan control services updated
-    /**
-     * @brief Callback for power state changes
-     *
-     * @param[in] powerStateOn - Whether the power state is on or not
-     *
-     * Callback function bound to the PowerState object instance to handle each
-     * time the power state changes.
-     */
-    void powerStateChanged(bool powerStateOn);
-
   private:
     /* The sdbusplus bus object to use */
     sdbusplus::bus::bus& _bus;
@@ -489,6 +478,16 @@
     std::map<configKey, std::unique_ptr<Event>> _events;
 
     /**
+     * @brief Callback for power state changes
+     *
+     * @param[in] powerStateOn - Whether the power state is on or not
+     *
+     * Callback function bound to the PowerState object instance to handle each
+     * time the power state changes.
+     */
+    void powerStateChanged(bool powerStateOn);
+
+    /**
      * @brief Find the service name for a given path and interface from the
      * cached dataset
      *
diff --git a/control/main.cpp b/control/main.cpp
index 7d19f58..9eec2c5 100644
--- a/control/main.cpp
+++ b/control/main.cpp
@@ -84,9 +84,6 @@
                       std::placeholders::_1, std::placeholders::_2));
 
         phosphor::fan::util::SDBusPlus::getBus().request_name(CONTROL_BUSNAME);
-
-        // TODO - Set power state to on until fan control services updated
-        manager.powerStateChanged(true);
 #else
         Manager manager(phosphor::fan::util::SDBusPlus::getBus(), event, mode);
 
