diff --git a/device_simulator/bal_stub.c b/device_simulator/bal_stub.c
index adebd0a..e6d7945 100644
--- a/device_simulator/bal_stub.c
+++ b/device_simulator/bal_stub.c
@@ -60,43 +60,58 @@
             break;
          case BAL_OBJ_ID__BAL_OBJ_ID_SUBSCRIBER_TERMINAL:
             {
-               BalOnuDiscoveryInfo onuDiscoveryInfo;
-               memset(&onuDiscoveryInfo, 0, sizeof(BalOnuDiscoveryInfo));
-               bal_onu_discovery_info__init(&onuDiscoveryInfo);
-               balIndCfg.balobjinfo->onudiscoveryinfo = &onuDiscoveryInfo;
                balIndCfg.balobjinfo->u_case = BAL_OBJ_IND__U_ONU_DISCOVERY_INFO;
-               BalSerialNumber serial_number;
-               memset(&serial_number, 0, sizeof(BalSerialNumber));
-               bal_serial_number__init(&serial_number);
-               balIndCfg.balobjinfo->onudiscoveryinfo->serial_number = &serial_number;
-               char vendor_id[20];
-               memset(&vendor_id, 0, 20);
-               strcpy(vendor_id,"4252434D");
-               balIndCfg.balobjinfo->onudiscoveryinfo->serial_number->vendor_id = vendor_id;
-               char vendor_specific[20];
-               memset(&vendor_specific, 0, 20);
-               strcpy(vendor_specific,"12345678");
-               balIndCfg.balobjinfo->onudiscoveryinfo->serial_number->vendor_specific = vendor_specific;
+               BalSubscriberTerminalCfg onudiscoveryinfo;
+               memset(&onudiscoveryinfo, 0, sizeof(BalSubscriberTerminalCfg));
+               bal_subscriber_terminal_cfg__init(&onudiscoveryinfo);
+               balIndCfg.balobjinfo->onudiscoveryinfo = &onudiscoveryinfo;
+
+               BalSubscriberTerminalKey subTermKey;
+               memset(&subTermKey, 0, sizeof(BalSubscriberTerminalKey));
+               bal_subscriber_terminal_key__init(&subTermKey);
+               balIndCfg.balobjinfo->onudiscoveryinfo->key = &subTermKey;
+               balIndCfg.balobjinfo->onudiscoveryinfo->key->has_sub_term_id = 1;
+               balIndCfg.balobjinfo->onudiscoveryinfo->key->sub_term_id = 65535;
+               balIndCfg.balobjinfo->onudiscoveryinfo->key->has_intf_id = 1;
+               balIndCfg.balobjinfo->onudiscoveryinfo->key->intf_id = 0;
+               
+               BalSubscriberTerminalCfgData subTermCfgData;
+               memset(&subTermCfgData, 0, sizeof(BalSubscriberTerminalCfgData));
+               bal_subscriber_terminal_cfg_data__init(&subTermCfgData);
+               balIndCfg.balobjinfo->onudiscoveryinfo->data = &subTermCfgData;
                if(BAL_OBJ_ID__BAL_OBJ_ID_INTERFACE == prevObjType)
                {
-                  balIndCfg.balobjinfo->onudiscoveryinfo->has_admin_state = 1;
-                  balIndCfg.balobjinfo->onudiscoveryinfo->admin_state = BAL_STATE__BAL_STATE_DOWN;
-                  balIndCfg.balobjinfo->onudiscoveryinfo->has_oper_status = 1;
-                  balIndCfg.balobjinfo->onudiscoveryinfo->oper_status = BAL_STATUS__BAL_STATUS_DOWN;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->has_admin_state = 1;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->admin_state = BAL_STATE__BAL_STATE_DOWN;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->has_oper_status = 1;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->oper_status = BAL_STATUS__BAL_STATUS_DOWN;
                   printf("\n***************************************************\n");
                   printf("Sending ONU discovery message\n");
                   printf("***************************************************\n");
                }
                else
                {
-                  balIndCfg.balobjinfo->onudiscoveryinfo->has_admin_state = 1;
-                  balIndCfg.balobjinfo->onudiscoveryinfo->admin_state = BAL_STATE__BAL_STATE_UP;
-                  balIndCfg.balobjinfo->onudiscoveryinfo->has_oper_status = 1;
-                  balIndCfg.balobjinfo->onudiscoveryinfo->oper_status = BAL_STATUS__BAL_STATUS_UP;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->has_admin_state = 1;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->admin_state = BAL_STATE__BAL_STATE_UP;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->has_oper_status = 1;
+                  balIndCfg.balobjinfo->onudiscoveryinfo->data->oper_status = BAL_STATUS__BAL_STATUS_UP;
                   printf("***************************************************\n");
                   printf("ONU Activation Successful\n");
                   printf("***************************************************\n");
                }
+               BalSerialNumber serial_number;
+               memset(&serial_number, 0, sizeof(BalSerialNumber));
+               bal_serial_number__init(&serial_number);
+               balIndCfg.balobjinfo->onudiscoveryinfo->data->serial_number = &serial_number;
+               char vendor_id[20];
+               memset(&vendor_id, 0, 20);
+               strcpy(vendor_id,"4252434D");
+               balIndCfg.balobjinfo->onudiscoveryinfo->data->serial_number->vendor_id = vendor_id;
+               char vendor_specific[20];
+               memset(&vendor_specific, 0, 20);
+               strcpy(vendor_specific,"12345678");
+               balIndCfg.balobjinfo->onudiscoveryinfo->data->serial_number->vendor_specific = vendor_specific;
+
                prevObjType = front->obj_type;
             }
             break;
