diff --git a/robot/assets/templates/aai/vlb_closed_loop_hack.jinja b/robot/assets/templates/aai/vlb_closed_loop_hack.jinja
deleted file mode 100644
index bf03459..0000000
--- a/robot/assets/templates/aai/vlb_closed_loop_hack.jinja
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-	"is-base-vf-module": false,
-	"persona-model-id": "{{persona_model_id}}",
-	"persona-model-version": "1.0",
-	"vf-module-id": "{{vf_module_id}}",
-	"vf-module-name": "{{vf_module_id}}"								 
-}
diff --git a/robot/resources/aai/service_instance.robot b/robot/resources/aai/service_instance.robot
index cca1eaf..c881fda 100644
--- a/robot/resources/aai/service_instance.robot
+++ b/robot/resources/aai/service_instance.robot
@@ -24,11 +24,6 @@
 
 ${GENERIC_VNF_PATH_TEMPLATE}   /network/generic-vnfs/generic-vnf/\${vnf_id}/vf-modules/vf-module/\${vf_module_id}
 ${GENERIC_VNF_QUERY_TEMPLATE}   /network/generic-vnfs/generic-vnf/\${vnf_id}/vf-modules/vf-module?vf-module-name=\${vf_module_name}
-${VLB_CLOSED_LOOP_HACK_BODY}    aai/vlb_closed_loop_hack.jinja
-
-#*************** Test Case Variables *************
-${VLB_CLOSED_LOOP_DELETE}
-${VLB_CLOSED_LOOP_VNF_ID}
 
 *** Keywords ***
 Validate Service Instance
@@ -51,46 +46,6 @@
     ${generic_vnf}=    AAI.Run Get Request      ${AAI_FRONTEND_ENDPOINT}    ${INDEX PATH}/network/generic-vnfs/generic-vnf/${vnf_id}?depth=all        auth=${auth
     [Return]    ${generic_vnf.json()}
 
-VLB Closed Loop Hack
-    [Arguments]    ${service}    ${generic_vnf}   ${closedloop_vf_module}
-    Return From Keyword If    '${service}' != 'vLB'
-    ${vnf_id}=     Get From Dictionary    ${generic_vnf}    vnf-id
-    ${vf_modules}=    Get From Dictionary    ${generic_vnf}    vf-modules
-    ${list}=    Get From Dictionary    ${vf_modules}   vf-module
-    ${vfmodule}=    Get From List    ${list}    0
-    ${persona_model_id}=    Get From Dictionary    ${closedloop_vf_module}    invariantUUID
-    ${persona_model_version}=   Get From Dictionary    ${closedloop_vf_module}    version
-    ${dummy}=    Catenate   dummy_${vnf_id}
-    ${dict}=    Create Dictionary   vnf_id=${vnf_id}   vf_module_id=${dummy}   persona_model_id=${persona_model_id}   persona_model_version=${persona_model_version}
-    ${datapath}=    Templating.Template String    ${GENERIC_VNF_PATH_TEMPLATE}    ${dict}
-    Templating.Create Environment    aai    ${GLOBAL_TEMPLATE_FOLDER}
-    ${auth}=  Create List  ${GLOBAL_AAI_USERNAME}    ${GLOBAL_AAI_PASSWORD}
-    ${data}=   Templating.Apply Template    aai   ${VLB_CLOSED_LOOP_HACK_BODY}    ${dict}
-	${put_resp}=    AAI.Run Put Request     ${AAI_FRONTEND_ENDPOINT}    ${INDEX PATH}${datapath}   ${data}        auth=${auth
-    ${status_string}=    Convert To String    ${put_resp.status_code}
-    Should Match Regexp    ${status_string}    ^(201|412)$
-    Set Test Variable   ${VLB_CLOSED_LOOP_DELETE}    ${datapath}
-    Set Test Variable   ${VLB_CLOSED_LOOP_VNF_ID}    ${vnf_id}
-
-VLB Closed Loop Hack Update
-    [Documentation]   Update the A&AI vDNS scaling vf module to have persona-model-version 1 rather than 1.0
-    [Arguments]   ${stack_name}
-    ${auth}=  Create List  ${GLOBAL_AAI_USERNAME}    ${GLOBAL_AAI_PASSWORD}
-    ${dict}=    Create Dictionary   vnf_id=${VLB_CLOSED_LOOP_VNF_ID}   vf_module_name=${stack_name}
-    ${query}=   Templating.Template String   ${GENERIC_VNF_QUERY_TEMPLATE}   ${dict}
-    ${get_resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${INDEX_PATH}${query}        auth=${auth
-    ${json}=   Set Variable   ${get_resp.json()}
-    Set to Dictionary    ${json}   persona-model-version   1
-    ${vf_module_id}=   Get From Dictionary   ${json}   vf-module-id
-    Set to Dictionary   ${dict}   vf_module_id=${vf_module_id}
-    ${uri}=   Templating.Template String   ${GENERIC_VNF_PATH_TEMPLATE}   ${dict}
-    ${resp}=   AAI.Run Put Request    ${AAI_FRONTEND_ENDPOINT}    ${INDEX_PATH}${uri}   ${json}        auth=${auth
-    ${get_resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${INDEX_PATH}${query}        auth=${auth
-
-Teardown VLB Closed Loop Hack
-    Return From Keyword If    ' ${VLB_CLOSED_LOOP_DELETE}' == ''
-	Delete A&AI Entity    ${VLB_CLOSED_LOOP_DELETE}
-
 Validate VF Module
     [Documentation]    Query and Validates A&AI Service Instance
     [Arguments]    ${vf_module_name}    ${stack_type}
diff --git a/robot/resources/clamp_interface.robot b/robot/resources/clamp_interface.robot
index 8aaaa55..fe59232 100644
--- a/robot/resources/clamp_interface.robot
+++ b/robot/resources/clamp_interface.robot
@@ -65,14 +65,12 @@
      # propText': u '{"global":[{"name":"service","value":["5fcdb3b7-5a5b-45da-83f6-14cce29181c8"]}
      Log    ${resp.json()['propText']}
      ${control_loop_id}=    Get Regexp Matches    ${resp.json()['propText']}     \\"service\\",\\"value\\":\\[\\"([0-9a-f\-]{36})\\"     1
-     #Set Suite Variable   ${CURRENT_CONTROL_LOOP_ID}   ${control_loop_id[0]}
      [Return]      ${control_loop_id[0]}
 
 Run CLAMP Get Model Names
      [Documentation]   runs CLAMP Get Model Names and returns the model_id
      ${data_path}=   Set Variable   ${CLAMP_BASE_PATH}/clds/model-names
      ${resp}=   Run Clamp HTTPS Get Request    ${data_path}
-     #Set Suite Variable   ${CURRENT_MODEL_ID}   ${resp.json()[0]['value']}
      [Return]     ${resp.json()[0]['value']}
 
 Run CLAMP Health Check
diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot
index cc74f8e..50a99e4 100644
--- a/robot/resources/demo_preload.robot
+++ b/robot/resources/demo_preload.robot
@@ -83,12 +83,11 @@
 
 Distribute Model
     [Arguments]   ${service}   ${modelName}
-    ${service_model_type}     ${vnf_type}    ${vf_modules}   ${catalog_resources}=   Model Distribution For Directory    ${service}   ${modelName}
+    Model Distribution For Directory    ${service}   ${modelName}
 
 Distribute vCPEResCust Model
     [Arguments]   ${service}   ${modelName}
-    ${service_model_type}     ${vnf_type}    ${vf_modules}   ${catalog_resources}=   Model Distribution For vCPEResCust Directory    ${service}   ${modelName}
-
+    Model Distribution For vCPEResCust Directory    ${service}   ${modelName}
 
 Create Customer For VNF Demo
     [Documentation]    Create demo customer for the demo
@@ -179,13 +178,13 @@
     [Arguments]   ${service}   ${vf_module_label}=NULL
     ${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}    SharedNode    OwnerType    v1    CloudZone
     ${uuid}=    Generate UUID4
-    ${vf_module_name_list}    ${generic_vnfs}    ${vvg_server_id}    ${service_instance_id}=    Orchestrate VNF    DemoCust_${uuid}    ${service}   ${service}    ${tenant_id}    ${tenant_name}
+    ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}=    Orchestrate VNF    DemoCust_${uuid}    ${service}   ${service}    ${tenant_id}    ${tenant_name}
     ${stack_name} = 	Get From List 	${vf_module_name_list} 	-1
-    Save For Delete    ${tenant_id}    ${tenant_name}    ${vvg_server_id}    DemoCust_${uuid}    ${service_instance_id}    ${stack_name}
+    Save For Delete    ${tenant_id}    ${tenant_name}    ${server_id}    DemoCust_${uuid}    ${service_instance_id}    ${stack_name}    ${catalog_service_id}    ${catalog_resource_ids}
     :FOR  ${vf_module_name}  IN   @{vf_module_name_list}
     \   Log   VNF Module Name=${vf_module_name}
     # Don't get from MSO for now due to SO-1186
-    # ${model_invariant_id}=  Run MSO Get ModelInvariantId   ${SUITE_SERVICE_MODEL_NAME}  ${vf_module_label}
+    # ${model_invariant_id}=  Run MSO Get ModelInvariantId   ${suite_service_model_name}  ${vf_module_label}
     ${model_invariant_id}=   Set Variable   ${EMPTY}
     :FOR    ${vf_module}    IN    @{generic_vnfs}
     \    ${generic_vnf}=    Get From Dictionary    ${generic_vnfs}    ${vf_module}
@@ -204,7 +203,7 @@
     ${vf_module_name}    ${service}    ${generic_vnfs}=   Orchestrate Demo VNF    Demonstration    ${service}   ${service}    ${tenant_id}    ${tenant_name}
     Log   VNF Module Name=${vf_module_name}
     # Don't get from MSO for now due to SO-1186
-    # ${model_invariant_id}=  Run MSO Get ModelInvariantId   ${SUITE_SERVICE_MODEL_NAME}  ${vf_module_label}
+    # ${model_invariant_id}=  Run MSO Get ModelInvariantId   ${suite_service_model_name}  ${vf_module_label}
     ${model_invariant_id}=   Set Variable   ${EMPTY}
     :FOR    ${vf_module}    IN    @{generic_vnfs}
     \    ${generic_vnf}=    Get From Dictionary    ${generic_vnfs}    ${vf_module}
@@ -216,7 +215,7 @@
 
 Save For Delete
     [Documentation]   Create a variable file to be loaded for save for delete
-    [Arguments]    ${tenant_id}    ${tenant_name}    ${vvg_server_id}    ${customer_name}    ${service_instance_id}    ${stack_name}
+    [Arguments]    ${tenant_id}    ${tenant_name}    ${vvg_server_id}    ${customer_name}    ${service_instance_id}    ${stack_name}    ${catalog_service_id}    ${catalog_resource_ids}
     ${dict}=    Create Dictionary
     Set To Dictionary   ${dict}   TENANT_NAME=${tenant_name}
     Set To Dictionary   ${dict}   TENANT_ID=${tenant_id}
@@ -224,11 +223,7 @@
     Set To Dictionary   ${dict}   STACK_NAME=${stack_name}
     Set To Dictionary   ${dict}   VVG_SERVER_ID=${vvg_server_id}
     Set To Dictionary   ${dict}   SERVICE_INSTANCE_ID=${service_instance_id}
-
-    Set To Dictionary   ${dict}   VLB_CLOSED_LOOP_DELETE=${VLB_CLOSED_LOOP_DELETE}
-    Set To Dictionary   ${dict}   VLB_CLOSED_LOOP_VNF_ID=${VLB_CLOSED_LOOP_VNF_ID}
-
-    Set To Dictionary   ${dict}   CATALOG_SERVICE_ID=${CATALOG_SERVICE_ID}
+    Set To Dictionary   ${dict}   CATALOG_SERVICE_ID=${catalog_service_id}
 
     ${vars}=    Catenate
     ${keys}=   Get Dictionary Keys    ${dict}
@@ -238,7 +233,7 @@
 
     ${comma}=   Catenate
     ${vars}=    Catenate   ${vars}CATALOG_RESOURCE_IDS = [
-    :FOR   ${id}   IN    @{CATALOG_RESOURCE_IDS}
+    :FOR   ${id}   IN    @{catalog_resource_ids}
     \    ${vars}=    Catenate  ${vars}${comma} "${id}"
     \    ${comma}=   Catenate   ,
     ${vars}=    Catenate  ${vars}]\n
diff --git a/robot/resources/heatbridge.robot b/robot/resources/heatbridge.robot
index 49d78af..1f1a642 100644
--- a/robot/resources/heatbridge.robot
+++ b/robot/resources/heatbridge.robot
@@ -26,10 +26,6 @@
 ${L_INTERFACE_URI}   ${VSERVER_URI}/l-interfaces/l-interface/\${linterface_id}
 ${VSERVER_NAME}    \${vserver_name}
 
-#******************** Test Case Variables ****************
-${REVERSE_HEATBRIDGE}
-
-
 *** Keywords ***
 Execute Heatbridge
     [Documentation]   Run the Heatbridge against the stack to generate the bulkadd message
@@ -65,8 +61,8 @@
     ${status_string}=    Convert To String    ${resp.status_code}
     Should Match Regexp    ${status_string} 	^(201|200)$
     ${reverse_heatbridge}=   Generate Reverse Heatbridge From Stack Info   ${stack_info}
-    Set Test Variable   ${REVERSE_HEATBRIDGE}   ${reverse_heatbridge}
     Run Validation Query    ${stack_info}    ${service}    ${vnf_id}
+    [Return]    ${reverse_heatbridge}
 
 Run Create VNFC
     [Documentation]    Create a VNFC for a vServer
@@ -128,8 +124,9 @@
 
 Execute Reverse Heatbridge
     [Documentation]   VID has already torn down the stack, reverse HB
-    Return From Keyword If   len(${REVERSE_HEATBRIDGE}) == 0
-    :FOR   ${uri}    IN   @{REVERSE_HEATBRIDGE}
+    [Arguments]   ${uris_to_delete}
+    Return From Keyword If   len(${uris_to_delete}) == 0
+    :FOR   ${uri}    IN   @{uris_to_delete}
     \    Run Keyword And Ignore Error    Delete A&AI Entity   ${uri}
 
 Generate Reverse Heatbridge From Stack Name
diff --git a/robot/resources/openstack/openstack_common.robot b/robot/resources/openstack/openstack_common.robot
index 04ac162..7f43899 100644
--- a/robot/resources/openstack/openstack_common.robot
+++ b/robot/resources/openstack/openstack_common.robot
@@ -7,10 +7,6 @@
 Library	          ONAPLibrary.Utilities
 Resource    ../global_properties.robot
 
-*** Variables ***
-#**************** Test Case Variables ******************
-${OPENSTACK_SERVICE_REGION}
-
 *** Keywords ***
 Internal Get Openstack
     [Documentation]    Runs an Openstack Get Request and returns the response
@@ -66,14 +62,4 @@
 Get Openstack Region
     [Documentation]   Returns the current openstack region test variable
     ...               Defaults to the openstack region of the Robot VM
-    Return From Keyword If   len('${OPENSTACK_SERVICE_REGION}') > 0   ${OPENSTACK_SERVICE_REGION}
-    Set Test Variable   ${OPENSTACK_SERVICE_REGION}   ${GLOBAL_INJECTED_REGION}
-    Log   Setting OPENSTACK_SERVICE_REGION=${OPENSTACK_SERVICE_REGION}
-    [Return]   ${OPENSTACK_SERVICE_REGION}
-
-Set Openstack Region Test Variable
-    [Documentation]   Sets the openstack service region of the current test case
-    ...               To be used to override the service region of the Robot VM (default)
-    [Arguments]   ${openstack_service_region}
-    Set Test Variable   ${OPENSTACK_SERVICE_REGION}   ${openstack_service_region}
-
+    [Return]   ${GLOBAL_INJECTED_REGION}
\ No newline at end of file
diff --git a/robot/resources/so/direct_instantiate.robot b/robot/resources/so/direct_instantiate.robot
index 033f886..0c74d5f 100644
--- a/robot/resources/so/direct_instantiate.robot
+++ b/robot/resources/so/direct_instantiate.robot
@@ -15,9 +15,6 @@
     [Arguments]    ${service}   ${csar_file}   ${vnf_template_file} 
     # Example: ${csar_file}=  Set Variable   /tmp/csar/service-Vfw20190413133734-csar.csar
     # Example: ${vnf_template_file}=  Set Variable   /var/opt/ONAP/testsuite/vcpeutils/preload_templates/template.vfw_vfmodule.json
-    ${name_suffix}=   Get Current Date     exclude_millis=True
-    ${name_suffix}=       Evaluate    '${name_suffix}'.replace(' ','')
-    ${name_suffix}=       Evaluate    '${name_suffix}'.replace(':','')
     Set Directory    preload    ./demo/preload_data
     ${preload_dict}=       Get Default Preload Data    preload
     ${template}=   Create Dictionary
@@ -45,7 +42,6 @@
 
     Log    ${preload_dict}  
     Log    ${template}  
-    ${service_instance_id}=   Create Entire Service   ${csar_file}    ${vnf_template_file}   ${template}   ${name_suffix}   ${GLOBAL_INJECTED_REGION}  ${GLOBAL_INJECTED_OPENSTACK_TENANT_ID}
+    ${service_instance_id}=   Create Entire Service   ${csar_file}    ${vnf_template_file}   ${template}   ${GLOBAL_INJECTED_REGION}  ${GLOBAL_INJECTED_OPENSTACK_TENANT_ID}    ${GLOBAL_INJECTED_PUBLIC_KEY}
     Log     ServiceInstanceId:${service_instance_id}
-    Should Not Be Equal As Strings  ${service_instance_id}   None
-
+    Should Not Be Equal As Strings  ${service_instance_id}   None
\ No newline at end of file
diff --git a/robot/resources/ssh/processes.robot b/robot/resources/ssh/processes.robot
index 44d82c8..8574f13 100644
--- a/robot/resources/ssh/processes.robot
+++ b/robot/resources/ssh/processes.robot
@@ -59,7 +59,7 @@
    :FOR    ${pid}    IN    @{pids}
    \    ${process_cmd}=    Get From Dictionary    ${map}    ${pid}
    \    ${status}    ${value}=    Run Keyword And Ignore Error    Should Match Regexp    ${process_cmd}    ${process_name}    
-   \    Run Keyword If   '${status}' == 'PASS'    Set Test Variable    ${foundpid}    ${pid}             
+   \    ${foundpid}=       Set Variable If    '${status}' == 'PASS'    ${pid}    ""
    Should Not Be Equal    ${foundpid}    ""           
    [Return]    ${map}[${foundpid}]
    
diff --git a/robot/resources/stack_validation/policy_check_vfw.robot b/robot/resources/stack_validation/policy_check_vfw.robot
index 8b09bad..ea791cd 100644
--- a/robot/resources/stack_validation/policy_check_vfw.robot
+++ b/robot/resources/stack_validation/policy_check_vfw.robot
@@ -18,9 +18,6 @@
 Resource          packet_generator_interface.robot
 Resource          validate_common.robot
 
-
-*** Variables ***
-
 *** Keywords ***
 Policy Check FirewallCL Stack
     [Documentation]    Executes the vFW policy closed loop test.
@@ -53,7 +50,6 @@
     # Force traffic below threshold
     Check For Policy Enforcement    ${vpg_public_ip}    ${policy_rate}    ${lower_bound}
 
-
 Check For Policy Enforcement
     [Documentation]     Push traffic above upper bound, wait for policy to fix it, push traffic to lower bound, wait for policy to fix it,
     [Arguments]    ${vpg_public_ip}    ${policy_rate}    ${forced_rate}
@@ -68,8 +64,6 @@
     ${list}=    Evaluate   ${list['sample-plugin']}['pg-streams']['pg-stream']
     Length Should Be    ${list}    ${number_of_streams}
 
-
-
 Policy Check vLB Stack
     [Documentation]    Executes the vLB policy closed loop test
     [Arguments]    ${stack_name}    ${policy_rate}
@@ -85,7 +79,6 @@
     ${prefix}=    Get DNSScaling Prefix
     ${dnsscaling}=    Replace String Using Regexp    ${stack_name}    ^Vfmodule_    ${prefix}
     ${dnsscaling_info}=    Wait for Stack to Be Deployed    auth    ${dnsscaling}
-    VLB Closed Loop Hack Update   ${dnsscaling}
     # TO DO: Log into vLB and cehck that traffic is flowing to the new DNS
     [Return]    ${dnsscaling}
 
@@ -96,7 +89,6 @@
     \    Return From Keyword If    '${dict['isBase']}' == 'false'    ${dict['prefix']}
     [Return]   None
 
-
 Start DNS Traffic
     [Documentation]   Run nslookups at rate per second. Run for 10 minutes or until it is called by the terminate process
     [Arguments]    ${vlb_public_ip}    ${rate}
diff --git a/robot/resources/test_templates/closedloop_test_template.robot b/robot/resources/test_templates/closedloop_test_template.robot
index 15686a1..55be469 100644
--- a/robot/resources/test_templates/closedloop_test_template.robot
+++ b/robot/resources/test_templates/closedloop_test_template.robot
@@ -45,23 +45,19 @@
 ${Expected_Threshold_3}    200
 ${Expected_Direction_3}    GREATER_OR_EQUAL
 
-#********** Test Case Variables ************
-${DNSSCALINGSTACK}
-
 *** Keywords ***
 VFW Policy
     Log    Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME}
     Initialize VFW Policy
-    ${stackname}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}=   Orchestrate VNF vFW closedloop
+    ${stackname}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}=   Orchestrate VNF vFW closedloop
     Policy Check FirewallCL Stack    ${stackname}    ${VFWPOLICYRATE}
-    Delete VNF    ${None}     ${server_id}    ${customer_name}    ${service_instance_id}    ${stackname}
+    Delete VNF    ${None}     ${server_id}    ${customer_name}    ${service_instance_id}    ${stackname}    ${uris_to_delete}
 
 VDNS Policy
     Initialize VDNS Policy
-    ${stackname}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}=   Orchestrate VNF vDNS closedloop
+    ${stackname}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}=   Orchestrate VNF vDNS closedloop
     ${dnsscaling}=   Policy Check vLB Stack    ${stackname}    ${VLBPOLICYRATE}
-    Set Test Variable   ${DNSSCALINGSTACK}   ${dnsscaling}
-    Delete VNF    ${None}     ${server_id}    ${customer_name}    ${service_instance_id}    ${stackname}
+    Delete VNF    ${None}     ${server_id}    ${customer_name}    ${service_instance_id}    ${stackname}    ${uris_to_delete}
 
 Initialize VFW Policy
      Get Configs VFW Policy
@@ -108,16 +104,16 @@
 
 Teardown Closed Loop
     [Documentation]   Tear down a closed loop test case
-    [Arguments]    ${customer_name}
+    [Arguments]    ${customer_name}    ${catalog_service_id}    ${catalog_resource_ids}
     Terminate All Processes
-    Teardown VNF    ${customer_name}
+    Teardown VNF    ${customer_name}    ${catalog_service_id}    ${catalog_resource_ids}
     Log     Teardown complete
 
 Create Config Policy
     [Documentation]    Create Config Policy
     ${randompolicyname} =     Create Policy Name
     ${policyname1}=    Catenate   com.${randompolicyname}
-    ${CONFIG_POLICY_NAME}=    Set Test Variable    ${policyname1}
+    ${CONFIG_POLICY_NAME}=    Catenate    ${policyname1}
     ${configpolicy}=    Create Dictionary    policy_name=${CONFIG_POLICY_NAME}
     Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
     ${output}=   Templating.Apply Template    cl    ${CREATE_CONFIG_TEMPLATE}    ${configpolicy}
@@ -135,7 +131,7 @@
 	[Documentation]    Create Opertional Policy
    	${randompolicyname} =     Create Policy Name
 	${policyname1}=    Catenate   com.${randompolicyname}
-	${OPS_POLICY_NAME}=    Set Test Variable    ${policyname1}
+	${OPS_POLICY_NAME}=    Catenate    ${policyname1}
  	${dict}=     Create Dictionary    policy_name=${OPS_POLICY_NAME}
     Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
     ${output}=   Templating.Apply Template    cl    ${CREATE_OPS_TEMPLATE}    ${dict}
@@ -187,18 +183,18 @@
 	Log    VNF Orchestration flow TEST NAME=${TEST NAME}
 	${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}    SharedNode    OwnerType    v1    CloudZone
     ${uuid}=    Generate UUID4
-	${stack_names}   ${generic_vnfs}    ${server_id}    ${service_instance_id}=  Orchestrate VNF   ETE_CLP_${uuid}    vFWCL      vFWCL   ${tenant_id}    ${tenant_name}
+	${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}    ${uris_to_delete}=  Orchestrate VNF   ETE_CLP_${uuid}    vFWCL      vFWCL   ${tenant_id}    ${tenant_name}
 	${customer_name}=    Catenate    ETE_CLP_${uuid}
-	[Return]  ${stack_names}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}
+	[Return]  ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}
 
  Orchestrate VNF vDNS closedloop
 	[Documentation]    VNF Orchestration for vLB
 	Log    VNF Orchestration flow TEST NAME=${TEST NAME}
 	${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}   SharedNode    OwnerType    v1    CloudZone
     ${uuid}=    Generate UUID4
-	${stack_names}   ${generic_vnfs}    ${server_id}    ${service_instance_id}=  Orchestrate VNF   ETE_CLP_${uuid}    vLB      vLB   ${tenant_id}    ${tenant_name}
+	${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}    ${uris_to_delete}=  Orchestrate VNF   ETE_CLP_${uuid}    vLB      vLB   ${tenant_id}    ${tenant_name}
 	${customer_name}=    Catenate    ETE_CLP_${uuid}
-	[Return]  ${stack_names}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}
+	[Return]  ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}
 
 VFWCL High Test
 	[Documentation]    Test Control Loop for High Traffic
diff --git a/robot/resources/test_templates/model_test_template.robot b/robot/resources/test_templates/model_test_template.robot
index ab33105..dfbf541 100644
--- a/robot/resources/test_templates/model_test_template.robot
+++ b/robot/resources/test_templates/model_test_template.robot
@@ -9,15 +9,9 @@
 Resource          ../asdc_interface.robot
 
 *** Variables ***
-${ASDC_BASE_PATH}    /sdc1
-${ASDC_DESIGNER_PATH}    /proxy-designer1#/dashboard
 ${ASDC_ASSETS_DIRECTORY}    ${GLOBAL_HEAT_TEMPLATES_FOLDER}
 ${ASDC_ZIP_DIRECTORY}    ${ASDC_ASSETS_DIRECTORY}/temp
 
-#***************** Test Case Variables *********************
-${CATALOG_RESOURCE_IDS}
-${CATALOG_SERVICE_ID}
-
 *** Keywords ***
 Model Distribution For Directory
     [Arguments]    ${service}   ${catalog_service_name}=    ${cds}=
@@ -36,16 +30,9 @@
     \    Create Zip From Files In Directory        ${folder}    ${zip}
     \    Append To List    ${ziplist}    ${zip}
     ${catalog_service_name}    ${catalog_resource_name}    ${vf_modules}    ${catalog_resource_ids}   ${catalog_service_id}   ${catalog_resources}   Distribute Model From ASDC    ${ziplist}    ${catalog_service_name}    ${cds}   ${service}
-    Set Test Variable   ${CATALOG_RESOURCE_IDS}   ${catalog_resource_ids}
-    Set Test Variable   ${CATALOG_SERVICE_ID}   ${catalog_service_id}
-    Set Test Variable   ${CATALOG_RESOURCES}   ${catalog_resources}
     Download CSAR    ${catalog_service_id}   
-    [Return]    ${catalog_service_name}    ${catalog_resource_name}    ${vf_modules}   ${catalog_resources}
-
-Teardown Model Distribution
-    [Documentation]    Clean up at the end of the test
-    Log   ${CATALOG_SERVICE_ID} ${CATALOG_RESOURCE_IDS}
-    Teardown Models    ${CATALOG_SERVICE_ID}   ${CATALOG_RESOURCE_IDS}
+    [Return]    ${catalog_service_name}    ${catalog_resource_name}    ${vf_modules}   ${catalog_resources}    ${catalog_resource_ids}   ${catalog_service_id}
+    [Teardown]    Teardown Models    ${catalog_service_id}    ${catalog_resource_ids}
 
 Teardown Models
     [Documentation]    Clean up at the end of the test
diff --git a/robot/resources/test_templates/model_test_template_vcperescust.robot b/robot/resources/test_templates/model_test_template_vcperescust.robot
index c30cfb2..ad7c6a0 100644
--- a/robot/resources/test_templates/model_test_template_vcperescust.robot
+++ b/robot/resources/test_templates/model_test_template_vcperescust.robot
@@ -9,17 +9,10 @@
 Resource          ../asdc_interface.robot
 
 *** Variables ***
-${ASDC_BASE_PATH}    /sdc1
-${ASDC_DESIGNER_PATH}    /proxy-designer1#/dashboard
 ${ASDC_ASSETS_DIRECTORY}    ${GLOBAL_HEAT_TEMPLATES_FOLDER}
 ${ASDC_ZIP_DIRECTORY}    ${ASDC_ASSETS_DIRECTORY}/temp
 
-#***************** Test Case Variables *********************
-${CATALOG_RESOURCE_IDS}
-${CATALOG_SERVICE_ID}
-
 *** Keywords ***
-
 Model Distribution For vCPEResCust Directory
     [Arguments]    ${service}   ${catalog_service_name}=    ${cds}=
     ServiceMapping.Set Directory    default    ./demo/service_mapping
@@ -37,27 +30,5 @@
     \    Create Zip From Files In Directory        ${folder}    ${zip}
     \    Append To List    ${ziplist}    ${zip}
     ${catalog_service_name}    ${catalog_resource_name}    ${vf_modules}    ${catalog_resource_ids}   ${catalog_service_id}   ${catalog_resources}   Distribute vCPEResCust Model From ASDC    ${ziplist}    ${catalog_service_name}    ${cds}   ${service}
-    Set Test Variable   ${CATALOG_RESOURCE_IDS}   ${catalog_resource_ids}
-    Set Test Variable   ${CATALOG_SERVICE_ID}   ${catalog_service_id}
-    Set Test Variable   ${CATALOG_RESOURCES}   ${catalog_resources}
     Download CSAR    ${catalog_service_id}   
-    [Return]    ${catalog_service_name}    ${catalog_resource_name}    ${vf_modules}   ${catalog_resources}
-
-
-
-
-Teardown Model Distribution
-    [Documentation]    Clean up at the end of the test
-    Log   ${CATALOG_SERVICE_ID} ${CATALOG_RESOURCE_IDS}
-    # Teardown is removing allotted resources for some reason
-    #Teardown Models    ${CATALOG_SERVICE_ID}   ${CATALOG_RESOURCE_IDS}
-
-Teardown Models
-    [Documentation]    Clean up at the end of the test
-    [Arguments]     ${catalog_service_id}    ${catalog_resource_ids}
-    Return From Keyword If    '${catalog_service_id}' == ''
-    :FOR    ${catalog_resource_id}   IN   @{catalog_resource_ids}
-    \   ${resourece_json}=   Mark ASDC Catalog Resource Inactive    ${catalog_resource_id}
-    ${service_json}=   Mark ASDC Catalog Service Inactive    ${catalog_service_id}
-    ${services_json}=   Delete Inactive ASDC Catalog Services
-    ${resources_json}=    Delete Inactive ASDC Catalog Resources
+    [Return]    ${catalog_service_name}    ${catalog_resource_name}    ${vf_modules}   ${catalog_resources}
\ No newline at end of file
diff --git a/robot/resources/test_templates/vnf_orchestration_test_template.robot b/robot/resources/test_templates/vnf_orchestration_test_template.robot
index 64c4a21..6c21e4a 100644
--- a/robot/resources/test_templates/vnf_orchestration_test_template.robot
+++ b/robot/resources/test_templates/vnf_orchestration_test_template.robot
@@ -32,9 +32,9 @@
     [Arguments]    ${customer_name}    ${service}    ${product_family}    ${delete_flag}=DELETE
     ${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}    SharedNode    OwnerType    v1    CloudZone
     ${uuid}=    Generate UUID4
-    ${vf_module_name_list}   ${generic_vnfs}    ${server_id}	${service_instance_id}=    Orchestrate VNF   ${customer_name}_${uuid}    ${service}    ${product_family}    ${tenant_id}    ${tenant_name}
-    Run Keyword If   '${delete_flag}' == 'DELETE'   Delete VNF    ${tenant_name}    ${server_id}    ${customer_name}_${uuid}    ${service_instance_id}    ${vf_module_name_list}
-    [Teardown]         Teardown VNF    ${customer_name}_${uuid}
+    ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}    ${uris_to_delete}=    Orchestrate VNF   ${customer_name}_${uuid}    ${service}    ${product_family}    ${tenant_id}    ${tenant_name}
+    Run Keyword If   '${delete_flag}' == 'DELETE'   Delete VNF    ${tenant_name}    ${server_id}    ${customer_name}_${uuid}    ${service_instance_id}    ${vf_module_name_list}    ${uris_to_delete}
+    [Teardown]         Teardown VNF    ${customer_name}_${uuid}    ${catalog_service_id}    ${catalog_resource_ids}
 
 Orchestrate VNF
     [Documentation]   Use openECOMP to Orchestrate a service.
@@ -43,8 +43,7 @@
     ${uuid}=    Generate UUID4
     ${service_name}=    Catenate    Service_Ete_Name${uuid}
     ${service_type}=    Set Variable    ${service}
-    ${service_model_type}     ${vnf_type}    ${vf_modules}   ${catalog_resources}=    Model Distribution For Directory    ${service}
-    Set Suite Variable    ${SUITE_SERVICE_MODEL_NAME}   ${service_model_type}
+    ${service_model_type}     ${vnf_type}    ${vf_modules}   ${catalog_resources}    ${catalog_resource_ids}   ${catalog_service_id}=    Model Distribution For Directory    ${service}
     ${server_id}=     Run Keyword If   '${service}' == 'vVG'    Create VVG Server    ${uuid}
     Create Customer For VNF    ${customer_name}    ${customer_name}    INFRA    ${service_type}    ${GLOBAL_AAI_CLOUD_OWNER}    ${tenant_id}
     Setup Browser
@@ -70,10 +69,10 @@
     \   ${generic_vnf}=   Validate Generic VNF    ${vnf_name}    ${vnf_type}    ${service_instance_id}
     \   Set To Dictionary    ${generic_vnfs}    ${vf_module_type}    ${generic_vnf}
     #    TODO: Need to look at a better way to default ipv4_oam_interface  search for Heatbridge
-    \   Execute Heatbridge    ${vf_module_name}    ${vnf}  ipv4_oam_interface
+    \   ${uris_to_delete}=    Execute Heatbridge    ${vf_module_name}    ${vnf}  ipv4_oam_interface
     \   Validate VF Module      ${vf_module_name}    ${vnf}
     \   Append To List   ${vf_module_name_list}    ${vf_module_name}
-    [Return]     ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}
+    [Return]     ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}    ${uris_to_delete}
 
 
 Orchestrate Demo VNF
@@ -91,7 +90,6 @@
     ${service_name}=    Catenate    Service_Ete_Name${uuid}
     ${service_type}=    Set Variable    ${service}
     ${vnf_json_resources}=   Get SDC Demo Vnf Catalog Resource      ${service_model_type}
-    Set Suite Variable    ${SUITE_SERVICE_MODEL_NAME}   ${service_model_type}
     Create Customer For VNF    ${full_customer_name}    ${full_customer_name}    INFRA    ${service_type}    ${GLOBAL_AAI_CLOUD_OWNER}    ${tenant_id}
     Setup Browser
     Login To VID GUI
@@ -200,7 +198,7 @@
 
 Delete VNF
     [Documentation]    Called at the end of a test case to tear down the VNF created by Orchestrate VNF
-    [Arguments]    ${tenant_name}    ${server_id}    ${customer_name}    ${service_instance_id}    ${vf_module_name_list}
+    [Arguments]    ${tenant_name}    ${server_id}    ${customer_name}    ${service_instance_id}    ${vf_module_name_list}    ${uris_to_delete}
     ${lcp_region}=   Get Openstack Region
     ${list}=    Create List
     # remove duplicates, sort vFW-> vPKG , revers to get vPKG > vFWSNK
@@ -212,7 +210,7 @@
     \     ${keypair_name}=    Get Stack Keypairs   ${stack}
     \     Append To List   ${list}   ${keypair_name}
     Teardown VVG Server    ${server_id}
-    Run Keyword and Ignore Error   Teardown VID   ${service_instance_id}   ${lcp_region}   ${tenant_name}   ${customer_name}
+    Run Keyword and Ignore Error   Teardown VID   ${service_instance_id}   ${lcp_region}   ${tenant_name}   ${customer_name}    ${uris_to_delete}
     #
     :FOR   ${stack}   IN   @{sorted_stack_names}
     \    Run Keyword and Ignore Error    Teardown Stack    ${stack}
@@ -225,8 +223,8 @@
 
 Teardown VNF
     [Documentation]    Called at the end of a test case to tear down the VNF created by Orchestrate VNF
-    [Arguments]    ${customer_name}
-    Run Keyword If   '${TEST STATUS}' == 'PASS'   Teardown Model Distribution
+    [Arguments]    ${customer_name}     ${catalog_service_id}    ${catalog_resource_ids}
+    Run Keyword If   '${TEST STATUS}' == 'PASS'   Teardown Models     ${catalog_service_id}    ${catalog_resource_ids}
     Run Keyword If   '${TEST STATUS}' == 'PASS'   Clean A&AI Inventory    ${customer_name}
     Close All Browsers
     Log    Teardown VNF implemented for successful tests only
@@ -267,7 +265,6 @@
     Delete Openstack Stack      auth    ${stack}    ${stack_id}
     Log    Deleted ${stack} ${stack_id}
     Run Keyword If   '${key_pair_status}' == 'PASS'   Delete Openstack Keypair    auth    ${keypair_name}
-    #Teardown VLB Closed Loop Hack
 
 Clean A&AI Inventory
     [Documentation]    Clean up Tenant in A&AI, Create Customer, Create Service and related relationships
diff --git a/robot/resources/vid/teardown_vid.robot b/robot/resources/vid/teardown_vid.robot
index d688028..f1b6daa 100644
--- a/robot/resources/vid/teardown_vid.robot
+++ b/robot/resources/vid/teardown_vid.robot
@@ -11,35 +11,33 @@
 *** Variables ***
 ${VID_ENV}            /vid
 ${VID_SERVICE_MODELS_SEARCH_URL}  ${GLOBAL_VID_SERVER_PROTOCOL}://${GLOBAL_INJECTED_VID_IP_ADDR}:${GLOBAL_VID_SERVER_PORT}${VID_ENV}/serviceModels.htm#/instances/services
-${TEARDOWN_STATUS}   FAIL
 
 *** Keywords ***
-
 Teardown VID
     [Documentation]   Teardown the VID This assumes that the any runnign stacks have been torn down
-    [Arguments]    ${service_instance_id}    ${lcp_region}    ${tenant}   ${customer}
+    [Arguments]    ${service_instance_id}    ${lcp_region}    ${tenant}   ${customer}    ${uris_to_delete}
     Return From Keyword If   len('${service_instance_id}') == 0
     # Keep going to the VID service instance until we get the pop-up alert that there is no service instance
-    Set Test Variable    ${TEARDOWN_STATUS}    FAIL
-    Wait Until Keyword Succeeds    300s    1s    Delete VID    ${service_instance_id}    ${lcp_region}    ${tenant}   ${customer}
-    Return From Keyword If   '${TEARDOWN_STATUS}' == 'PASS'
-    Fail   ${TEARDOWN_STATUS}
+    ${status}    Catenate    FAIL
+    ${status}    ${vfmodule}=    Wait Until Keyword Succeeds    300s    1s    Delete VID    ${service_instance_id}    ${lcp_region}    ${tenant}   ${customer}    ${uris_to_delete}
+    Return From Keyword If   '${status}' == 'PASS'
+    Fail   ${status}
 
 
 Delete VID
     [Documentation]    Teardown the next VID entity that has a Remove icon.
-    [Arguments]    ${service_instance_id}    ${lcp_region}    ${tenant}   ${customer}
+    [Arguments]    ${service_instance_id}    ${lcp_region}    ${tenant}   ${customer}    ${uris_to_delete}
     # For vLB closed loop, we may have 2 vf modules and the vDNS one needs to be removed first.
     ${remove_order}=    Create List    vDNS_Ete   vPKG   Vfmodule_Ete
 
     # FAIL status is returned in ${vfmodule} because FAIL are ignored during teardown
     ${status}    ${vfmodule}=   Run Keyword and Ignore Error   Delete Next VID Entity    ${service_instance_id}    ${lcp_region}    ${tenant}   ${remove_order}   ${customer}
-    Return From Keyword If    '${status}' == 'FAIL'
-    Return From Keyword If    '${vfmodule}' == 'FAIL'
+    Return From Keyword If    '${status}' == 'FAIL'    ${status}    ${vfmodule}
+    Return From Keyword If    '${vfmodule}' == 'FAIL'    ${status}    ${vfmodule}
     # After tearing down a VF module, execute the reverse HB for it to remove the references from A&AI
-    Run Keyword If   'Vfmodule_Ete' in '${vfmodule}'    Execute Reverse Heatbridge
+    Run Keyword If   'Vfmodule_Ete' in '${vfmodule}'    Execute Reverse Heatbridge    ${uris_to_delete}
     Fail    Continue with Next Remove
-
+    
 Delete Next VID Entity
     [Documentation]    Teardown the next VID entity that has a Remove icon.
     [Arguments]    ${service_instance_id}    ${lcp_region}    ${tenant}   ${remove_order}   ${customer}
@@ -55,13 +53,12 @@
 
     # When Handle VID Alert detects a pop-up. it will return FAIL and we are done
     # Return from Keyword is required because FAIL is inored during teardown
-    Set Test Variable   ${TEARDOWN_STATUS}   PASS
+    ${teardown_status}=   Catenate    PASS
     ${status}   ${value}   Run Keyword And Ignore Error    Handle VID Alert
     Return From Keyword If   '${status}' == 'FAIL'   ${status}
     ${status}   ${value}   Run Keyword And Ignore Error    Wait Until Page Contains Element    link=View/Edit    timeout=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
     Return From Keyword If   '${status}' == 'FAIL'   ${status}
-    Set Test Variable   ${TEARDOWN_STATUS}   FAIL
-
+    ${teardown_status}=   Catenate    FAIL
 
     Click Element     link=View/Edit
     Wait Until Page Contains    View/Edit Service Instance     timeout=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
@@ -85,7 +82,7 @@
     ${request_id}=    Parse Request Id     ${response text}
     Click Element    xpath=//div[@class='ng-scope']/div[@class = 'buttonRow']/button[text() = 'Close']
     Poll MSO Get Request    ${GLOBAL_MSO_STATUS_PATH}${request_id}   COMPLETE
-    [Return]   ${vfmodule}
+    [Return]   ${teardown_status}    ${vfmodule}
 
 Handle VID Alert
     [Documentation]   When service instance has been deleted, an alert will be triggered on the search to end the loop
diff --git a/robot/resources/vvp_interface.robot b/robot/resources/vvp_interface.robot
deleted file mode 100644
index c33048f..0000000
--- a/robot/resources/vvp_interface.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-*** Settings ***
-Documentation     Tests the health of the VVP containers...
-Library    Collections
-Library         String
-Library 	      RequestsLibrary
-Resource        global_properties.robot
-
-*** Variables ***
-${VVP_PATH}    /
-${VVP_CI_UWSGI_ENDPOINT}
-${VVP_CMS_UWSGI_ENDPOINT}
-${VVP_EM_UWSGI_ENDPOINT}
-${VVP_EXT_HAPROXY_ENDPOINT}
-${VVP_GITLAB_ENDPOINT}
-${VVP_IMAGESCANNER_ENDPOINT}
-${VVP_INT_HAPROXY_ENDPOINT}
-${VVP_JENKINS_ENDPOINT}
-${VVP_POSTGRES_ENDPOINT}
-${VVP_REDIS_ENDPOINT}
-
-*** Keywords ***
-Run VVP ICE CI Container (Automat Testing) Health Check
-    [Documentation]  Tests interface for container with purpose: end-to-end flow tests based on Seleniunm
-    ${resp}=    Run ICE CI Container (Automat Testing) Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run ICE CI Container (Automat Testing) Get Request
-    [Documentation]   Runs request in container with purpose: end-to-end flow tests based on Seleniunm
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_CI_UWSGI_ENDPOINT}
-    ${session}=    Create Session 	ice-ci      ${VVP_CI_UWSGI_ENDPOINT}
-    ${resp}= 	Get Request 	ice-ci     ${data_path}
-    Log    Received response from ice-ci ${resp.text}
-    [Return]    ${resp}
-
-Run VVP CMS Health Check
-    [Documentation]     Tests interface for container with purpose: backend uwsgi server which hosts django application
-    ${resp}=     Run VVP CMS Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP CMS Get Request
-    [Documentation]   Runs request in container with purpose: backend uwsgi server which hosts django application
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_CMS_UWSGI_ENDPOINT}
-    ${session}=    Create Session 	cms      ${VVP_CMS_UWSGI_ENDPOINT}
-    ${resp}= 	Get Request 	cms     ${data_path}
-    Log    Received response from cms ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Engagement Manager Health Check
-    [Documentation]  Tests interface for container with purpose: backend uwsgi server which hosts django application
-    ${resp}=    Run VVP Engagement Manager Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Engagement Manager Get Request
-    [Documentation]    Runs request in container with purpose: backend uwsgi server which hosts django application
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_EM_UWSGI_ENDPOINT}
-    ${session}=    Create Session 	engagement-manager      ${VVP_EM_UWSGI_ENDPOINT}
-    ${resp}= 	Get Request 	engagement-manager     ${data_path}
-    Log    Received response from engagement-manager ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Ext HA Proxy Health Check
-    [Documentation]  Tests interface for container with purpose: load balancer for external transport
-    ${resp}=    Run VVP Ext HA Proxy Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Ext HA Proxy Get Request
-    [Documentation]   Runs request in container with purpose: load balancer for external transport
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_EXT_HAPROXY_ENDPOINT}
-    ${session}=    Create Session 	ext-haproxy      ${VVP_EXT_HAPROXY_ENDPOINT}
-    ${resp}= 	Get Request 	ext-haproxy     ${data_path}
-    Log    Received response from ext-haproxy ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Gitlab Health Check
-    [Documentation]  Tests gitlab interface
-    ${resp}=    Run VVP Gitlab Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Gitlab Get Request
-    [Documentation]   Runs an gitlab request
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_GITLAB_ENDPOINT}
-    ${session}=    Create Session 	gitlab      ${VVP_GITLAB_ENDPOINT}
-    ${resp}= 	Get Request 	gitlab     ${data_path}
-    Log    Received response from gitlab ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Image Scanner Health Check
-    [Documentation]  Tests interface for container with purpose: scan for validity and viruses on users files
-    ${resp}=    Run VVP Image Scanner Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Image Scanner Get Request
-    [Documentation]   Runs request in container with purpose: scan for validity and viruses on users files
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_IMAGESCANNER_ENDPOINT}
-    ${session}=    Create Session 	image-scanner      ${VVP_IMAGESCANNER_ENDPOINT}
-    ${resp}= 	Get Request 	image-scanner     ${data_path}
-    Log    Received response from image-scanner ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Int HA Proxy Health Check
-    [Documentation]  Tests interface for container with purpose: load balancer for internal (container to container) transport
-    ${resp}=    Run VVP Int HA Proxy Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Int HA Proxy Get Request
-    [Documentation]   Runs request in container with purpose: load balancer for internal (container to container) transport
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_INT_HAPROXY_ENDPOINT}
-    ${session}=    Create Session 	int-haproxy      ${VVP_INT_HAPROXY_ENDPOINT}
-    ${resp}= 	Get Request 	int-haproxy     ${data_path}
-    Log    Received response from int-haproxy ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Jenkins Health Check
-    [Documentation]  Tests jenkins interface
-    ${resp}=    Run VVP Jenkins Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Jenkins Get Request
-    [Documentation]   Runs a jenkins request
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_JENKINS_ENDPOINT}
-    ${session}=    Create Session 	jenkins      ${VVP_JENKINS_ENDPOINT}
-    ${resp}= 	Get Request 	jenkins     ${data_path}
-    Log    Received response from jenkins ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Postgresql Health Check
-    [Documentation]  Tests postgresql interface
-    ${resp}=    Run VVP Postgresql Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Postgresql Get Request
-    [Documentation]   Runs a postgresql request
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_POSTGRES_ENDPOINT}
-    ${session}=    Create Session 	postgresql      ${VVP_POSTGRES_ENDPOINT}
-    ${resp}= 	Get Request 	postgresql     ${data_path}
-    Log    Received response from postgresql ${resp.text}
-    [Return]    ${resp}
-
-Run VVP Redis Health Check
-    [Documentation]  Tests redis interface
-    ${resp}=    Run VVP Redis Get Request    ${VVP_PATH}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run VVP Redis Get Request
-    [Documentation]   Runs a redis request
-    [Arguments]    ${data_path}
-    Log    Creating session ${VVP_REDIS_ENDPOINT}
-    ${session}=    Create Session 	redis      ${VVP_REDIS_ENDPOINT}
-    ${resp}= 	Get Request 	redis     ${data_path}
-    Log    Received response from redis ${resp.text}
-    [Return]    ${resp}
-
diff --git a/robot/testsuites/closed-loop.robot b/robot/testsuites/closed-loop.robot
index c2d3d3d..2fa501f 100644
--- a/robot/testsuites/closed-loop.robot
+++ b/robot/testsuites/closed-loop.robot
@@ -7,7 +7,6 @@
 ${PACKET_GENERATOR_HOST}
 
 *** Test Cases ***
-
 VFW Closed Loop Test
     [TAGS]    closedloop    vfwcl
     VFW Policy
@@ -22,4 +21,4 @@
     VFWCL High Test   ${PACKET_GENERATOR_HOST}
     VFWCL Low Test   ${PACKET_GENERATOR_HOST}
     VFWCL Set To Medium    ${PACKET_GENERATOR_HOST}
-    [Teardown]    Teardown Closed Loop   ${None}
+    [Teardown]    Teardown Closed Loop   ${None}    ${None}    ${None}
diff --git a/robot/testsuites/demo.robot b/robot/testsuites/demo.robot
index c9d6219..4caf93d 100644
--- a/robot/testsuites/demo.robot
+++ b/robot/testsuites/demo.robot
@@ -20,7 +20,9 @@
 ${CUSTOMER_NAME}
 ${SERVICE_INSTANCE_ID}
 ${STACK_NAMES}
-
+${CATALOG_SERVICE_ID}
+${CATALOG_RESOURCE_IDS}
+${REVERSE_HEATBRIDGE}
 
 *** Test Cases ***
 Initialize Customer And Models
@@ -71,8 +73,8 @@
     [Tags]   deleteVNF
     Setup Browser
     Login To VID GUI
-    Delete VNF    ${TENANT_NAME}    ${VVG_SERVER_ID}    ${CUSTOMER_NAME}    ${SERVICE_INSTANCE_ID}    ${STACK_NAMES}
-    [Teardown]   Teardown VNF    ${CUSTOMER_NAME}
+    Delete VNF    ${TENANT_NAME}    ${VVG_SERVER_ID}    ${CUSTOMER_NAME}    ${SERVICE_INSTANCE_ID}    ${STACK_NAMES}    ${REVERSE_HEATBRIDGE}
+    [Teardown]   Teardown VNF    ${CUSTOMER_NAME}    ${CATALOG_SERVICE_ID}    ${CATALOG_RESOURCE_IDS}
 
 Run Heatbridge
     [Documentation]
diff --git a/robot/testsuites/model-distribution-vcpe.robot b/robot/testsuites/model-distribution-vcpe.robot
index 09a4430..eee3af9 100644
--- a/robot/testsuites/model-distribution-vcpe.robot
+++ b/robot/testsuites/model-distribution-vcpe.robot
@@ -6,9 +6,6 @@
 Resource          ../resources/test_templates/model_test_template_vcperescust.robot
 
 Test Template         Model Distribution For vCPEResCust Directory
-#Test Teardown    Teardown Model Distribution
-
-*** Variables ***
 
 *** Test Cases ***
 Distribute vCPEResCust Model    vCPEResCust
diff --git a/robot/testsuites/model-distribution.robot b/robot/testsuites/model-distribution.robot
index 5633cdc..0bdb997 100644
--- a/robot/testsuites/model-distribution.robot
+++ b/robot/testsuites/model-distribution.robot
@@ -6,9 +6,6 @@
 Resource          ../resources/test_templates/model_test_template.robot
 
 Test Template         Model Distribution For Directory
-Test Teardown    Teardown Model Distribution
-
-*** Variables ***
 
 *** Test Cases ***
 Distribute vLB Model    vLB
diff --git a/vcpe_allotted_resource_data.json.example b/vcpe_allotted_resource_data.json.example
deleted file mode 100644
index 6d821ca..0000000
--- a/vcpe_allotted_resource_data.json.example
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-     "tunnelxconn": {
-         "invariantUUID": "8ac029e7-77aa-40d4-b28a-d17c02d5fd82",
-         "UUID": "2ddc1b37-d7da-4aab-b645-ed7db34a5d03",
-         "node_type": "org.openecomp.service.Demovcpevgmux"
-     },
-     "brg": {
-         "invariantUUID": "ff0337b9-dbe2-4d88-bb74-18bf027ae586",
-         "UUID": "1b6974f1-4aed-47f4-b962-816aa1261927",
-         "node_type": "org.openecomp.service.Demovcpevbrgemu"
-     }
-}
diff --git a/vnf_resources.json.example b/vnf_resources.json.example
deleted file mode 100644
index e5f187f..0000000
--- a/vnf_resources.json.example
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-	"vFWSNK": {
-		  "vnf_type": "53a6f526-7df5-4d96-8646 0",
-		  "vf_module": "53a6f5267df54d968646..base_vfw..module-0"
-	},
-	"vPKG": {
-		  "vnf_type": "6652ddfc-6759-47ec-9ef5 0",
-		  "vf_module": "6652ddfc675947ec9ef5..base_vpkg..module-0"
-	}
-}
-
-#   SDC Query
-#   http://{{sdc_be_port}}//sdc2/rest/v1/catalog/services/serviceName/demoVFWCL/serviceVersion/1.0
-#   componentInstances[].groupInstances[0].groupName
-#   componentInstances[].name
-#   groupInstances[]."groupName": "53a6f5267df54d968646..base_vfw..module-0",
-#   "name": "53a6f526-7df5-4d96-8646 0",
