diff --git a/group.hpp b/group.hpp
index 7bf97c6..bb21fb6 100644
--- a/group.hpp
+++ b/group.hpp
@@ -31,18 +31,21 @@
 
     /** @brief Constructs LED Group
      *
-     * @param[in] bus     - Handle to system dbus
-     * @param[in] objPath - The D-Bus path that hosts LED group
-     * @param[in] manager - Reference to Manager
+     * @param[in] bus       - Handle to system dbus
+     * @param[in] objPath   - The D-Bus path that hosts LED group
+     * @param[in] manager   - Reference to Manager
      * @param[in] serialize - Serialize object
+     * @param[in] callBack  - Custom callback when LED group is asserted
      */
     Group(sdbusplus::bus::bus& bus, const std::string& objPath,
-          Manager& manager, Serialize& serialize) :
+          Manager& manager, Serialize& serialize,
+          std::function<void(bool)> callBack = nullptr) :
 
         sdbusplus::server::object::object<
             sdbusplus::xyz::openbmc_project::Led::server::Group>(
             bus, objPath.c_str(), true),
-        path(objPath), manager(manager), serialize(serialize)
+        path(objPath), manager(manager), serialize(serialize),
+        customCallBack(callBack)
     {
         // Initialize Asserted property value
         if (serialize.getGroupSavedState(objPath))
@@ -70,6 +73,10 @@
 
     /** @brief The serialize class for storing and restoring groups of LEDs */
     Serialize& serialize;
+
+    /** @brief Custom callback when LED group is asserted
+     */
+    std::function<void(bool)> customCallBack;
 };
 
 } // namespace led
