diff --git a/vid-webpack-master/src/app/shared/services/aaiService/aai.service.spec.ts b/vid-webpack-master/src/app/shared/services/aaiService/aai.service.spec.ts
index 5cff00b..f563cbc 100644
--- a/vid-webpack-master/src/app/shared/services/aaiService/aai.service.spec.ts
+++ b/vid-webpack-master/src/app/shared/services/aaiService/aai.service.spec.ts
@@ -566,6 +566,7 @@
   {
     'vnfs': {
       'DROR_vsp': {
+        'upgradedVFMSonsCounter': 0,
         'rollbackOnFailure': 'true',
         'vfModules': {},
         'isMissingData': false,
diff --git a/vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts b/vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts
index 4e7e4da..d421fe8 100644
--- a/vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts
+++ b/vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts
@@ -37,12 +37,16 @@
   updateSubscribers,
   updateUserId
 } from "../../storeUtil/utils/general/general.actions";
-import {updateModel, createServiceInstance} from "../../storeUtil/utils/service/service.actions";
+import {
+  updateModel,
+  createServiceInstance,
+} from "../../storeUtil/utils/service/service.actions";
 import {FeatureFlagsService, Features} from "../featureFlag/feature-flags.service";
 import {VnfMember} from "../../models/VnfMember";
 import {setOptionalMembersVnfGroupInstance} from "../../storeUtil/utils/vnfGroup/vnfGroup.actions";
 import {Observable} from "rxjs";import {NetworkModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model";
 import {VPNModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model";
+import {ModelInfo} from "../../models/modelInfo";
 
 @Injectable()
 export class AaiService {
@@ -61,6 +65,14 @@
       });
   };
 
+  retrieveServiceLatestUpdateableVersion = (modelInvariantId: string): Observable<ModelInfo> => {
+    if (this.featureFlagsService.getFlagState(Features.FLAG_FLASH_REPLACE_VF_MODULE)){
+      let pathQuery: string = Constants.Path.SERVICE_LATEST_VERSION + modelInvariantId;
+      return this.http.get<ModelInfo>(pathQuery)
+    }
+    return;
+  };
+
   getUserId = (): Observable<any> => {
     return this.http.get("../../getuserID", {responseType: 'text'}).do((res) => this.store.dispatch(updateUserId(res)));
   };
@@ -213,7 +225,7 @@
   };
 
   public extractLcpRegionName(cloudRegionId: string, cloudOwner: string):string {
-   return this.featureFlagsService.getFlagState(Features.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST) ?
+    return this.featureFlagsService.getFlagState(Features.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST) ?
       cloudRegionId+AaiService.formatCloudOwnerTrailer(cloudOwner) : cloudRegionId;
   };
 
@@ -271,7 +283,7 @@
   public retrieveAndStoreServiceInstanceTopology(serviceInstanceId: string, subscriberId: string, serviceType: string, serviceModeId: string):Observable<ServiceInstance> {
     return this.retrieveServiceInstanceTopology(serviceInstanceId, subscriberId, serviceType).do((service:ServiceInstance) => {
       this.store.dispatch(createServiceInstance(service, serviceModeId));
-      });
+    });
   };
 
 
@@ -296,9 +308,6 @@
       .do((res) => {
         this.store.dispatch(setOptionalMembersVnfGroupInstance(serviceModelId, pathQuery, res))
       });
-    // let res = Observable.of((JSON.parse(JSON.stringify(this.loadMockMembers()))));
-    // return  res;
-     
   }
 
   //TODO: make other places use this function
diff --git a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
index 01ecb2c..da79a1a 100644
--- a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
+++ b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
@@ -9,7 +9,9 @@
   FLAG_VF_MODULE_RESUME_STATUS_CREATE = 'FLAG_VF_MODULE_RESUME_STATUS_CREATE',
   DRAG_AND_DROP_OPERATION = 'DRAG_AND_DROP_OPERATION',
   FLAG_1906_COMPONENT_INFO = 'FLAG_1906_COMPONENT_INFO',
-  FLAG_1908_RESUME_MACRO_SERVICE = 'FLAG_1908_RESUME_MACRO_SERVICE'
+  FLAG_1908_RESUME_MACRO_SERVICE = 'FLAG_1908_RESUME_MACRO_SERVICE',
+  FLAG_FLASH_REPLACE_VF_MODULE ='FLAG_FLASH_REPLACE_VF_MODULE',
+  FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN ='FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN'
 }
 
 @Injectable()
@@ -23,7 +25,11 @@
 
   /*static method for easy refactoring of code, so no injection of FeatureFlagsService is needed*/
   public static getFlagState(flag: Features, store: NgRedux<AppState>):boolean {
-    return store.getState().global.flags[flag];
+    let storeStateGlobalFields = store.getState().global;
+    if(storeStateGlobalFields && storeStateGlobalFields.flags && storeStateGlobalFields.flags[flag] !== undefined){
+      return storeStateGlobalFields.flags[flag];
+    }
+    return false;
   }
 
 
