diff --git a/phosphor-power-sequencer/src/power_control.hpp b/phosphor-power-sequencer/src/power_control.hpp
index c7c7951..248431a 100644
--- a/phosphor-power-sequencer/src/power_control.hpp
+++ b/phosphor-power-sequencer/src/power_control.hpp
@@ -1,5 +1,7 @@
 #pragma once
 
+#include "power_interface.hpp"
+
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/message.hpp>
 #include <sdbusplus/server/object.hpp>
@@ -11,12 +13,14 @@
 namespace phosphor::power::sequencer
 {
 
+using PowerObject = sdbusplus::server::object::object<PowerInterface>;
+
 /**
  * @class PowerControl
  * This class implements GPIO control of power on / off, and monitoring of the
  * chassis power good.
  */
-class PowerControl
+class PowerControl : public PowerObject
 {
   public:
     PowerControl() = delete;
@@ -33,6 +37,21 @@
      */
     PowerControl(sdbusplus::bus::bus& bus, const sdeventplus::Event& event);
 
+    /** @copydoc PowerInterface::getPgood() */
+    int getPgood() const override;
+
+    /** @copydoc PowerInterface::getPgoodTimeout() */
+    int getPgoodTimeout() const override;
+
+    /** @copydoc PowerInterface::getState() */
+    int getState() const override;
+
+    /** @copydoc PowerInterface::setPgoodTimeout() */
+    void setPgoodTimeout(int timeout) override;
+
+    /** @copydoc PowerInterface::setState() */
+    void setState(int state) override;
+
   private:
     /**
      * The D-Bus bus object
@@ -40,9 +59,31 @@
     sdbusplus::bus::bus& bus;
 
     /**
-     * Event to loop on
+     * Power good
      */
-    sdeventplus::Event eventLoop;
+    int pgood{0};
+
+    /**
+     * Power good timeout constant
+     */
+    static constexpr std::chrono::seconds pgoodTimeout{
+        std::chrono::seconds(10)};
+
+    /**
+     * Poll interval constant
+     */
+    static constexpr std::chrono::milliseconds pollInterval{
+        std::chrono::milliseconds(3000)};
+
+    /**
+     * Power state
+     */
+    int state{0};
+
+    /**
+     * Power good timeout
+     */
+    std::chrono::seconds timeout{pgoodTimeout};
 
     /**
      * Timer to poll the pgood
@@ -50,11 +91,6 @@
     sdeventplus::utility::Timer<sdeventplus::ClockId::Monotonic> timer;
 
     /**
-     * Poll interval constant
-     */
-    static constexpr int pollInterval{3000}; // Milliseconds
-
-    /**
      * Polling method for monitoring the system power good
      */
     void pollPgood();
