diff --git a/chassis_state_manager.hpp b/chassis_state_manager.hpp
index cf59025..b48409b 100644
--- a/chassis_state_manager.hpp
+++ b/chassis_state_manager.hpp
@@ -44,8 +44,9 @@
      *
      * @param[in] bus       - The Dbus bus object
      * @param[in] objPath   - The Dbus object path
+     * @param[in] id        - Chassis id
      */
-    Chassis(sdbusplus::bus::bus& bus, const char* objPath) :
+    Chassis(sdbusplus::bus::bus& bus, const char* objPath, size_t id) :
         ChassisInherit(bus, objPath, true), bus(bus),
         systemdSignals(
             bus,
@@ -54,12 +55,14 @@
                 sdbusRule::interface("org.freedesktop.systemd1.Manager"),
             std::bind(std::mem_fn(&Chassis::sysStateChange), this,
                       std::placeholders::_1)),
-        pohTimer(sdeventplus::Event::get_default(),
-                 std::bind(&Chassis::pohCallback, this), std::chrono::hours{1},
-                 std::chrono::minutes{1})
+        id(id), pohTimer(sdeventplus::Event::get_default(),
+                         std::bind(&Chassis::pohCallback, this),
+                         std::chrono::hours{1}, std::chrono::minutes{1})
     {
         subscribeToSystemdSignals();
 
+        createSystemdTargetTable();
+
         restoreChassisStateChangeTime();
 
         determineInitialState();
@@ -83,6 +86,9 @@
     void startPOHCounter();
 
   private:
+    /** @brief Create systemd target instance names and mapping table */
+    void createSystemdTargetTable();
+
     /** @brief Determine initial chassis state and set internally */
     void determineInitialState();
 
@@ -137,6 +143,12 @@
     /** @brief Watch for any changes to UPS properties  **/
     std::unique_ptr<sdbusplus::bus::match_t> uPowerPropChangeSignal;
 
+    /** @brief Chassis id. **/
+    const size_t id = 0;
+
+    /** @brief Transition state to systemd target mapping table. **/
+    std::map<Transition, std::string> systemdTargetTable;
+
     /** @brief Used to Set value of POHCounter */
     uint32_t pohCounter(uint32_t value) override;
 
