diff --git a/robot/resources/asdc_interface.robot b/robot/resources/asdc_interface.robot
index ecd0211..7fa648f 100644
--- a/robot/resources/asdc_interface.robot
+++ b/robot/resources/asdc_interface.robot
@@ -95,7 +95,7 @@
     \    Set To Dictionary    ${resource_types}    ${resource_type_string}    ${loop_catalog_resource_id}   
     \    Append To List    ${catalog_resource_ids}   ${loop_catalog_resource_id}
 
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${vnflist}=    ServiceMapping.Get Service Vnf Mapping    default    ${service}
 
     # Spread the icons on the pallette starting on the left
diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot
index 50a99e4..9793252 100644
--- a/robot/resources/demo_preload.robot
+++ b/robot/resources/demo_preload.robot
@@ -5,7 +5,6 @@
 Resource        test_templates/model_test_template_vcperescust.robot
 Resource        test_templates/vnf_orchestration_test_template.robot
 Resource        asdc_interface.robot
-Resource        so_interface.robot
 Resource        vid/vid_interface.robot
 Resource        consul_interface.robot
 Resource	policy_interface.robot
diff --git a/robot/resources/global_properties.robot b/robot/resources/global_properties.robot
index cdb73f4..1a4fa0c 100644
--- a/robot/resources/global_properties.robot
+++ b/robot/resources/global_properties.robot
@@ -34,3 +34,14 @@
 ${GLOBAL_AAI_DESIGN_TYPE}    integration
 ${GLOBAL_AAI_ZONE_CONTEXT}    labs
 ${GLOBAL_TEMPLATE_FOLDER}    robot/assets/templates
+${GLOBAL_SERVICE_MAPPING_DIRECTORY}    ./demo/service_mapping
+${GLOBAL_SO_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_SERVER_PORT}
+${GLOBAL_SO_APIHAND_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_APIHAND_IP_ADDR}:${GLOBAL_MSO_APIHAND_SERVER_PORT}
+${GLOBAL_SO_ASDCHAND_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_ASDCHAND_IP_ADDR}:${GLOBAL_MSO__ASDCHAND_SERVER_PORT}
+${GLOBAL_SO_BPMN_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_BPMN_IP_ADDR}:${GLOBAL_MSO_BPMN_SERVER_PORT}
+${GLOBAL_SO_CATDB_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_CATDB_IP_ADDR}:${GLOBAL_MSO__CATDB_SERVER_PORT}
+${GLOBAL_SO_OPENSTACK_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_OPENSTACK_IP_ADDR}:${GLOBAL_MSO_OPENSTACK_SERVER_PORT}
+${GLOBAL_SO_REQDB_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_REQDB_IP_ADDR}:${GLOBAL_MSO_REQDB_SERVER_PORT}
+${GLOBAL_SO_SDNC_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_SDNC_IP_ADDR}:${GLOBAL_MSO_SDNC_SERVER_PORT}
+${GLOBAL_SO_VFC_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_VFC_IP_ADDR}:${GLOBAL_MSO_VFC_SERVER_PORT}
+${GLOBAL_SO_VNFM_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_VNFM_IP_ADDR}:${GLOBAL_MSO_VNFM_SERVER_PORT}
\ No newline at end of file
diff --git a/robot/resources/heatbridge.robot b/robot/resources/heatbridge.robot
index 1f1a642..afecc1c 100644
--- a/robot/resources/heatbridge.robot
+++ b/robot/resources/heatbridge.robot
@@ -80,7 +80,7 @@
     [Documentation]    Run A&AI query to validate the bulk add
     [Arguments]    ${stack_info}    ${service}    ${vnf_id}
     Return from Keyword If    '${service}' == ''
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${payload}=  Run Get Generic VNF by VnfId       ${vnf_id}
     ${vnf_type}=    Catenate    ${payload.json()[vnf-type]}
     ${server_name_parameter}=    ServiceMapping.Get Validate Name Mapping    default    ${service}    ${vnf_type}
diff --git a/robot/resources/sdngc_interface.robot b/robot/resources/sdngc_interface.robot
index 6a2f649..4f6f332 100644
--- a/robot/resources/sdngc_interface.robot
+++ b/robot/resources/sdngc_interface.robot
@@ -91,7 +91,7 @@
     [Arguments]    ${service_type_uuid}    ${generic_vnf_name}    ${generic_vnf_type}     ${vf_module_name}    ${vf_modules}    ${service}   ${uuid}
     ${base_vf_module_type}=    Catenate
     ${closedloop_vf_module}=    Create Dictionary
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${templates}=    ServiceMapping.Get Service Template Mapping    default    ${service}    ${generic_vnf_type}
     :FOR    ${vf_module}    IN      @{vf_modules}
     \       ${vf_module_type}=    Get From Dictionary    ${vf_module}    name
diff --git a/robot/resources/so/create_cloud_config.robot b/robot/resources/so/create_cloud_config.robot
deleted file mode 100644
index 5f471fb..0000000
--- a/robot/resources/so/create_cloud_config.robot
+++ /dev/null
@@ -1,57 +0,0 @@
-*** Settings ***
-Documentation	  Create Cloud Config
-
-Resource    ../so_interface.robot
-Library    OperatingSystem
-Library    Collections
-Library    ONAPLibrary.Templating    WITH NAME    Templating
-
-
-*** Variables ***
-${CLOUD_CONFIG_PATH}    /cloudSite
-
-${SYSTEM USER}    robot-ete
-${SO_ADD_CLOUD_CONFIG}=   so/create_cloud_config.jinja
-${SO_ADD_CLOUD_CONFIG_V3}=   so/cloud_config_v3.jinja
-
-*** Keywords ***
-Create Cloud Configuration
-    [Documentation]    Creates a cloud configuration in SO, so it knows how to talk to an openstack cloud
-    [Arguments]    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}    
-    ${arguments}=    Create Dictionary     site_name=${site_name}  region_id=${region_id}  clli=${clli}    identity_id=${identity_id}    identity_url=${identity_url}    mso_id=${mso_id}    mso_pass=${mso_pass}    admin_tenant=${admin_tenant}   member_role=${member_role}     identity_server_type=${identity_server_type}     authentication_type=${authentication_type}
-    Templating.Create Environment    so    ${GLOBAL_TEMPLATE_FOLDER}
-    ${data}=   Templating.Apply Template    so    ${SO_ADD_CLOUD_CONFIG}     ${arguments}
-    ${get_resp}=    Run SO Catalog Post request    ${CLOUD_CONFIG_PATH}/${site_name}     ${data}
-    
-    ${get_resp}=    Run Keyword If    '${get_resp.status_code}'=='404'    Update Cloud Configuration    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}
-    Should Be Equal As Strings  ${get_resp.status_code}     200
-
-
-Create Cloud Configuration v3
-    [Documentation]    Creates a cloud configuration in SO, so it knows how to talk to an openstack cloud
-    [Arguments]    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}    ${project_domain_name}    ${user_domain_Name}
-    ${arguments}=    Create Dictionary     site_name=${site_name}  region_id=${region_id}  clli=${clli}    identity_id=${identity_id}    identity_url=${identity_url}    mso_id=${mso_id}    mso_pass=${mso_pass}    admin_tenant=${admin_tenant}   member_role=${member_role}     identity_server_type=${identity_server_type}     authentication_type=${authentication_type}    project_domain_name=${project_domain_name}    user_domain_name=${user_domain_name}
-    Log    ${arguments}
-    Templating.Create Environment    so    ${GLOBAL_TEMPLATE_FOLDER}
-    ${data}=	Templating.Apply Template    so    ${SO_ADD_CLOUD_CONFIG_V3}     ${arguments}
-    ${get_resp}=    Run SO Catalog Post request     ${CLOUD_CONFIG_PATH}     ${data}
-    ${status_string}=    Convert To String    ${get_resp.status_code}
-    Should Match Regexp    ${status_string} 	^(201|200)$
-
-Update Cloud Configuration
-    [Documentation]    Updates a cloud configuration in SO
-    [Arguments]    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}
-    ${arguments}=    Create Dictionary     site_name=${site_name}  region_id=${region_id}  clli=${clli}    identity_id=${identity_id}    identity_url=${identity_url}    mso_id=${mso_id}    mso_pass=${mso_pass}    admin_tenant=${admin_tenant}   member_role=${member_role}     identity_server_type=${identity_server_type}     authentication_type=${authentication_type}
-    Templating.Create Environment    so    ${GLOBAL_TEMPLATE_FOLDER}
-    ${data}=    Templating.Apply Template    so    ${SO_ADD_CLOUD_CONFIG}     ${arguments}
-    ${get_resp}=    Run SO Catalog Put request    ${CLOUD_CONFIG_PATH}/${site_name}     ${data}
-    Should Be Equal As Strings  ${get_resp.status_code}     200
-    [Return]   ${get_resp}
-
-Get Cloud Configuration
-    [Documentation]    Gets cloud configuration in SO
-    [Arguments]    ${site_name}    
-    ${get_resp}=    Run MSO Catalog Get request    ${CLOUD_CONFIG_PATH}/${site_name}
-    Should Be Equal As Strings  ${get_resp.status_code}     200
-
-
diff --git a/robot/resources/so_interface.robot b/robot/resources/so_interface.robot
index 1e555db..f0491d3 100644
--- a/robot/resources/so_interface.robot
+++ b/robot/resources/so_interface.robot
@@ -1,152 +1,64 @@
 *** Settings ***
 Documentation     The main interface for interacting with MSO. It handles low level stuff like managing the http request library and MSO required fields
-Library 	      RequestsLibrary
-Library	          ONAPLibrary.Utilities
-Library           OperatingSystem
-Library           Collections
+Library           ONAPLibrary.SO    WITH NAME    SO
+Library           ONAPLibrary.Templating    WITH NAME    Templating
+
 Resource          global_properties.robot
 *** Variables ***
-${MSO_HEALTH_CHECK_PATH}    /manage/health
-${MSO_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_SERVER_PORT}
-${SO_APIHAND_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_APIHAND_IP_ADDR}:${GLOBAL_MSO_APIHAND_SERVER_PORT}
-${SO_ASDCHAND_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_ASDCHAND_IP_ADDR}:${GLOBAL_MSO__ASDCHAND_SERVER_PORT}
-${SO_BPMN_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_BPMN_IP_ADDR}:${GLOBAL_MSO_BPMN_SERVER_PORT}
-${SO_CATDB_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_CATDB_IP_ADDR}:${GLOBAL_MSO__CATDB_SERVER_PORT}
-${SO_OPENSTACK_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_OPENSTACK_IP_ADDR}:${GLOBAL_MSO_OPENSTACK_SERVER_PORT}
-${SO_REQDB_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_REQDB_IP_ADDR}:${GLOBAL_MSO_REQDB_SERVER_PORT}
-${SO_SDNC_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_SDNC_IP_ADDR}:${GLOBAL_MSO_SDNC_SERVER_PORT}
-${SO_VFC_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_VFC_IP_ADDR}:${GLOBAL_MSO_VFC_SERVER_PORT}
-${SO_VNFM_ENDPOINT}     ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_VNFM_IP_ADDR}:${GLOBAL_MSO_VNFM_SERVER_PORT}
+${SO_HEALTH_CHECK_PATH}    /manage/health
+${CLOUD_CONFIG_PATH}    /cloudSite
+${SO_ADD_CLOUD_CONFIG}=   robot/assets/templates/so/create_cloud_config.template
+${SO_ADD_CLOUD_CONFIG_V3}=   robot/assets/templates/so/cloud_config_v3.template
 
 *** Keywords ***
 Run SO Global Health Check
-    Run SO Container Health Check    API_HANDLER  ${SO_APIHAND_ENDPOINT}
-    Run SO Container Health Check    ASDC_HANDLER  ${SO_ASDCHAND_ENDPOINT}
-    Run SO Container Health Check    BPMN_INFRA    ${SO_BPMN_ENDPOINT}
-    Run SO Container Health Check    CATALOG_DB    ${SO_CATDB_ENDPOINT}
-    Run SO Container Health Check    OPENSTACK_INFRA   ${SO_OPENSTACK_ENDPOINT}
-    Run SO Container Health Check    REQUEST_DB    ${SO_REQDB_ENDPOINT}
-    Run SO Container Health Check    SDNC_INFRA  ${SO_SDNC_ENDPOINT}
-    Run SO Container Health Check    VFC_INFRA  ${SO_VFC_ENDPOINT}
-    Run SO Container Health Check    VNFM_INFRA  ${SO_VNFM_ENDPOINT}
+    Run Get Request	   ${GLOBAL_SO_APIHAND_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request	   ${GLOBAL_SO_ASDCHAND_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_BPMN_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_CATDB_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_OPENSTACK_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_REQDB_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_SDNC_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_VFC_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
+    Run Get Request    ${GLOBAL_SO_VNFM_ENDPOINT}    ${SO_HEALTH_CHECK_PATH}
 
-
-Run SO Container Health Check
-    [Documentation]    Runs an MSO global health check
-    [Arguments]    ${so_endpoint_label}    ${so_endpoint}
-    ${auth}=  Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    ${session}=    Create Session 	mso 	${so_endpoint}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json   X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}= 	Get Request 	mso 	${MSO_HEALTH_CHECK_PATH}     headers=${headers}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-Run MSO Get ModelInvariantId
-    [Documentation]    Runs an MSO Get ModelInvariantID for ClosedLoop Policies
-    [Arguments]    ${service_model_name}   ${vf_module_label}=NULL
-    ${param_dict}=    Create Dictionary    serviceModelName    ${service_model_name}
-    ${param}=   Evaluate   urllib.urlencode(${param_dict})    urllib
-    ${data_path}=   Catenate   SEPARATOR=     /ecomp/mso/catalog/v2/serviceVnfs?  ${param}
-    ${resp}=    Run MSO Catalog Get Request    ${data_path}
-    Log    ${resp.json()}
-    # ${resp.json()['serviceVnfs'][0]['vfModules'][0]['vfModuleLabel'] should be 'base_vpkg'
-    ${model_invariant_id}=   Set Variable   NULL
-    @{ITEMS}=    Copy List    ${resp.json()['serviceVnfs']}
-    :FOR    ${ELEMENT}    IN    @{ITEMS}
-    \    Log    ${ELEMENT['vfModules']}
-    \    ${model_invariant_id}  Set Variable If   ('${vf_module_label}' in '${ELEMENT['vfModules'][0]['vfModuleLabel']}')   ${ELEMENT['modelInfo']['modelInvariantUuid']}  NULL
-    \    Exit For Loop If  '${model_invariant_id}' != 'NULL'
-    Should Not Be Equal As Strings    ${model_invariant_id}    NULL
-    [Return]   ${model_invariant_id}
-
-Run MSO Get Request
-    [Documentation]    Runs an MSO get request
-    [Arguments]    ${data_path}    ${accept}=application/json
-    ${auth}=  Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${MSO_ENDPOINT}
-    ${session}=    Create Session 	mso 	${MSO_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=${accept}    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}= 	Get Request 	mso 	${data_path}     headers=${headers}
-    Log    Received response from mso ${resp.text}
-    [Return]    ${resp}
-
-Run MSO Catalog Get Request
-    [Documentation]    Runs an MSO get request
-    [Arguments]    ${data_path}    ${accept}=application/json
+Get Cloud Configuration
+    [Documentation]    Gets cloud configuration in SO
+    [Arguments]    ${site_name}
     ${auth}=  Create List  ${GLOBAL_MSO_CATDB_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${SO_CATDB_ENDPOINT}
-    ${session}=    Create Session 	so_catdb   ${SO_CATDB_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=${accept}    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}= 	Get Request 	so_catdb  	${data_path}     headers=${headers}
-    Log    Received response from so_catdb ${resp.text}
-    [Return]    ${resp}
-
-
-Poll MSO Get Request
-    [Documentation]    Runs an MSO get request until a certain status is received. valid values are COMPLETE
-    [Arguments]    ${data_path}     ${status}
-    ${auth}=  Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${MSO_ENDPOINT}
-    ${session}=    Create Session 	mso 	${MSO_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    #do this until it is done
-    :FOR    ${i}    IN RANGE    20
-    \    ${resp}= 	Get Request 	mso 	${data_path}     headers=${headers}
-    \    Should Not Contain    ${resp.text}    FAILED
-    \    Log    ${resp.json()['request']['requestStatus']['requestState']}
-    \    ${exit_loop}=    Evaluate    "${resp.json()['request']['requestStatus']['requestState']}" == "${status}"
-    \    Exit For Loop If  ${exit_loop}
-    \    Sleep    15s
-    Log    Received response from mso ${resp.text}
-    [Return]    ${resp}
-
-Run MSO Post request
-    [Documentation]    Runs an MSO post request
-    [Arguments]  ${data_path}  ${data}
-    ${auth}=  Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${MSO_ENDPOINT}
-    ${session}=    Create Session 	mso 	${MSO_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-	${resp}= 	Post Request 	mso 	${data_path}     data=${data}   headers=${headers}
-	Log    Received response from mso ${resp.text}
-	[Return]  ${resp}
-
-Run SO Catalog Post request
-    [Documentation]    Runs an SO post request
-    [Arguments]  ${data_path}  ${data}   ${so_port}=
+    ${get_resp}=    SO.Run Get Request    ${GLOBAL_SO_CATDB_ENDPOINT}    ${CLOUD_CONFIG_PATH}/${site_name}   auth=${auth} 
+    Should Be Equal As Strings  ${get_resp.status_code}     200
+    
+Create Cloud Configuration
+    [Documentation]    Creates a cloud configuration in SO, so it knows how to talk to an openstack cloud
+    [Arguments]    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}    
+    ${arguments}=    Create Dictionary     site_name=${site_name}  region_id=${region_id}  clli=${clli}    identity_id=${identity_id}    identity_url=${identity_url}    mso_id=${mso_id}    mso_pass=${mso_pass}    admin_tenant=${admin_tenant}   member_role=${member_role}     identity_server_type=${identity_server_type}     authentication_type=${authentication_type}
+    Templating.Create Environment    so    ${GLOBAL_TEMPLATE_FOLDER}
+    ${data}=   Templating.Apply Template    so    ${SO_ADD_CLOUD_CONFIG}     ${arguments}
     ${auth}=  Create List  ${GLOBAL_MSO_CATDB_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${SO_CATDB_ENDPOINT}
-    ${session}=    Create Session       so_catdb     ${SO_CATDB_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}=        Post Request    so_catdb     ${data_path}     data=${data}   headers=${headers}
-    Log    Received response from so_catdb ${resp.text}
-    [Return]  ${resp}
+    ${get_resp}=   SO.Run Put Request   ${GLOBAL_SO_CATDB_ENDPOINT}    ${CLOUD_CONFIG_PATH}/${site_name}   ${data}    auth=${auth}     
+    ${get_resp}=    Run Keyword If    '${get_resp.status_code}'=='404'    Update Cloud Configuration    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}
+    Should Be Equal As Strings  ${get_resp.status_code}     200
 
-Run SO Catalog Put request
-    [Documentation]    Runs an SO put request
-    [Arguments]  ${data_path}  ${data}   ${so_port}=
+Create Cloud Configuration v3
+    [Documentation]    Creates a cloud configuration in SO, so it knows how to talk to an openstack cloud
+    [Arguments]    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}    ${project_domain_name}    ${user_domain_Name}
+    ${arguments}=    Create Dictionary     site_name=${site_name}  region_id=${region_id}  clli=${clli}    identity_id=${identity_id}    identity_url=${identity_url}    mso_id=${mso_id}    mso_pass=${mso_pass}    admin_tenant=${admin_tenant}   member_role=${member_role}     identity_server_type=${identity_server_type}     authentication_type=${authentication_type}    project_domain_name=${project_domain_name}    user_domain_name=${user_domain_name}
+    Log    ${arguments}
+    Templating.Create Environment    so    ${GLOBAL_TEMPLATE_FOLDER}
+    ${data}=	Templating.Apply Template    so    ${SO_ADD_CLOUD_CONFIG_V3}     ${arguments}
     ${auth}=  Create List  ${GLOBAL_MSO_CATDB_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${SO_CATDB_ENDPOINT}
-    ${session}=    Create Session       so_catdb     ${SO_CATDB_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}=        Put Request    so_catdb     ${data_path}     data=${data}   headers=${headers}
-    Log    Received response from so_catdb ${resp.text}
-    [Return]  ${resp}
+    ${get_resp}=   SO.Run Post Request   ${GLOBAL_SO_CATDB_ENDPOINT}    ${CLOUD_CONFIG_PATH}   ${data}    auth=${auth} 
+    ${status_string}=    Convert To String    ${get_resp.status_code}
+    Should Match Regexp    ${status_string} 	^(201|200)$
 
-Run MSO Delete request
-    [Documentation]    Runs an MSO Delete request
-    [Arguments]  ${data_path}  ${data}
-    ${auth}=    Create List    ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
-    Log    Creating session ${MSO_ENDPOINT}
-    ${session}=    Create Session    mso    ${MSO_ENDPOINT}    auth=${auth}
-    ${uuid}=    Generate UUID4
-    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json    X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}=    Delete Request    mso    ${data_path}    ${data}    headers=${headers}
-    Log    Received response from mso ${resp.text}
-    [Return]    ${resp}
+Update Cloud Configuration
+    [Documentation]    Updates a cloud configuration in SO
+    [Arguments]    ${site_name}    ${region_id}   ${clli}   ${identity_id}   ${identity_url}   ${mso_id}    ${mso_pass}    ${admin_tenant}    ${member_role}    ${identity_server_type}    ${authentication_type}
+    ${arguments}=    Create Dictionary     site_name=${site_name}  region_id=${region_id}  clli=${clli}    identity_id=${identity_id}    identity_url=${identity_url}    mso_id=${mso_id}    mso_pass=${mso_pass}    admin_tenant=${admin_tenant}   member_role=${member_role}     identity_server_type=${identity_server_type}     authentication_type=${authentication_type}
+    Templating.Create Environment    so    ${GLOBAL_TEMPLATE_FOLDER}
+    ${data}=    Templating.Apply Template    so    ${SO_ADD_CLOUD_CONFIG}     ${arguments}
+    ${auth}=  Create List  ${GLOBAL_MSO_CATDB_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    ${get_resp}=   SO.Run Put Request   ${GLOBAL_SO_CATDB_ENDPOINT}    ${CLOUD_CONFIG_PATH}/${site_name}   ${data}    auth=${auth} 
+    Should Be Equal As Strings  ${get_resp.status_code}     200
+    [Return]   ${get_resp}
\ No newline at end of file
diff --git a/robot/resources/stack_validation/policy_check_vfw.robot b/robot/resources/stack_validation/policy_check_vfw.robot
index ea791cd..7b73db0 100644
--- a/robot/resources/stack_validation/policy_check_vfw.robot
+++ b/robot/resources/stack_validation/policy_check_vfw.robot
@@ -83,7 +83,7 @@
     [Return]    ${dnsscaling}
 
 Get DNSScaling Prefix
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${mapping}=    ServiceMapping.Get Service Template Mapping    default    vLB    vLB
     :FOR   ${dict}    IN   @{mapping}
     \    Return From Keyword If    '${dict['isBase']}' == 'false'    ${dict['prefix']}
diff --git a/robot/resources/test_templates/model_test_template.robot b/robot/resources/test_templates/model_test_template.robot
index dfbf541..dbbe264 100644
--- a/robot/resources/test_templates/model_test_template.robot
+++ b/robot/resources/test_templates/model_test_template.robot
@@ -15,7 +15,7 @@
 *** Keywords ***
 Model Distribution For Directory
     [Arguments]    ${service}   ${catalog_service_name}=    ${cds}=
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${directory_list}=    ServiceMapping.Get Service Folder Mapping    default    ${service}
     ${ziplist}=    Create List
     ${uuid}=    Get Current Date
diff --git a/robot/resources/test_templates/model_test_template_vcperescust.robot b/robot/resources/test_templates/model_test_template_vcperescust.robot
index ad7c6a0..bcce51e 100644
--- a/robot/resources/test_templates/model_test_template_vcperescust.robot
+++ b/robot/resources/test_templates/model_test_template_vcperescust.robot
@@ -15,7 +15,7 @@
 *** Keywords ***
 Model Distribution For vCPEResCust Directory
     [Arguments]    ${service}   ${catalog_service_name}=    ${cds}=
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${directory_list}=    ServiceMapping.Get Service Folder Mapping    default    ${service}
     ${ziplist}=    Create List
     ${uuid}=    Get Current Date
diff --git a/robot/resources/test_templates/vnf_orchestration_test_template.robot b/robot/resources/test_templates/vnf_orchestration_test_template.robot
index 6c21e4a..3311c8b 100644
--- a/robot/resources/test_templates/vnf_orchestration_test_template.robot
+++ b/robot/resources/test_templates/vnf_orchestration_test_template.robot
@@ -50,7 +50,7 @@
     Login To VID GUI
     ${service_instance_id}=   Wait Until Keyword Succeeds    300s   5s    Create VID Service Instance    ${customer_name}    ${service_model_type}    ${service}     ${service_name}   ${project_name}   ${owning_entity}
     Validate Service Instance    ${service_instance_id}    ${service}      ${customer_name}
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${vnflist}=    ServiceMapping.Get Service Vnf Mapping    default    ${service}
     ${generic_vnfs}=    Create Dictionary
     ${vnf_name_index}=   Set Variable  0
@@ -95,7 +95,7 @@
     Login To VID GUI
     ${service_instance_id}=   Wait Until Keyword Succeeds    300s   5s    Create VID Service Instance    ${customer_name}    ${service_model_type}    ${service}     ${service_name}   ${project_name}   ${owning_entity}
     Validate Service Instance    ${service_instance_id}    ${service}      ${customer_name}
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${vnflist}=    ServiceMapping.Get Service Vnf Mapping    default    ${service}
     ${generic_vnfs}=    Create Dictionary
     :FOR   ${vnf}   IN   @{vnflist}
@@ -147,7 +147,7 @@
 Get Name Pattern
     [Documentation]    To support services with multiple VNFs, we need to dig the vnf type out of the SDC catalog resources to select in the VID UI
     [Arguments]   ${vnf}    ${service}
-    ServiceMapping.Set Directory    default    ./demo/service_mapping
+    ServiceMapping.Set Directory    default    ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
     ${list}=    ServiceMapping.Get Service Template Mapping    default    ${service}    ${vnf}
     :FOR    ${dict}   IN   @{list}
     \   ${base_name}=   Get From Dictionary    ${dict}    name_pattern
diff --git a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot
index 537dc5f..f203b16 100644
--- a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot
+++ b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot
@@ -18,7 +18,6 @@
 Resource        ../heatbridge.robot
 
 Resource    	../global_properties.robot
-Resource    	../so_interface.robot
 
 Library         ONAPLibrary.Openstack
 Library	        ONAPLibrary.Utilities
@@ -29,6 +28,7 @@
 
 Library         RequestsLibrary
 Library         Collections
+Library        ONAPLibrary.SO    WITH NAME    SO
 
 *** Variables ***
 ${service_template}    robot/assets/cds/service-Vfirewall0911-template.yml
@@ -85,7 +85,8 @@
     Log     --------request--------
     Log     ${request}
     Log     --------end request--------
-    ${resp}=	Run MSO Post Request	${so_uri_path}		${request}
+    ${auth}=  Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    ${resp}=    SO.Run Post Request  ${GLOBAL_SO_ENDPOINT}    ${so_uri_path}   ${data}    auth=${auth} 
     Log 	--------response-------
     ${json_string}=    Evaluate    json.dumps(${resp.json()})    json
     Log	${json_string}
@@ -93,8 +94,8 @@
     ${requestId}=    Catenate    ${resp.json()['requestReferences']['requestId']}
     Log    requestId=${requestId}
     Log	-------end response-------
-    # Poll MSO Get Request    ${GLOBAL_MSO_STATUS_PATH}${request_id}   COMPLETE
-
+    # ${auth}=	Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    # Run Polling Get Request    ${MSO_ENDPOINT}    ${GLOBAL_MSO_STATUS_PATH}${request_id}    auth=${auth}
 
 Get VNF Info
     [Documentation] 	Get VNF Info
diff --git a/robot/resources/vid/create_service_instance.robot b/robot/resources/vid/create_service_instance.robot
index 45ea899..ffb3e04 100644
--- a/robot/resources/vid/create_service_instance.robot
+++ b/robot/resources/vid/create_service_instance.robot
@@ -1,14 +1,13 @@
 *** Settings ***
 Documentation	  Creates VID Service Instance
-...
-...	              Creates VID Service Instance
 
 Library 	    SeleniumLibrary
 Library	          ONAPLibrary.Utilities
 Library         String
 Library        DateTime
+Library        ONAPLibrary.SO    WITH NAME    SO
 
-Resource          ../so_interface.robot
+Resource          ../global_properties.robot
 Resource          vid_interface.robot
 
 *** Keywords ***
@@ -37,7 +36,8 @@
     Click On Button When Enabled    //div[@class = 'buttonRow']/button[text() = 'Close']
     ${request_id}=    Parse Request Id    ${response text}
     ${service_instance_id}=    Parse Instance Id     ${response text}
-    Poll MSO Get Request    ${GLOBAL_MSO_STATUS_PATH}${request_id}   COMPLETE
+    ${auth}=	Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    SO.Run Polling Get Request    ${GLOBAL_SO_ENDPOINT}    ${GLOBAL_MSO_STATUS_PATH}${request_id}    auth=${auth}
     [return]    ${service_instance_id}
 
 Wait For Model
@@ -58,8 +58,8 @@
     Wait Until Element Contains    xpath=//div[@ng-controller='deletionDialogController']//div[@ng-controller= 'msoCommitController']/pre[@class = 'log ng-binding']   requestId    timeout=${GLOBAL_VID_UI_TIMEOUT_LONG}
     ${response text}=    Get Text    xpath=//div[@ng-controller='deletionDialogController']//div[@ng-controller= 'msoCommitController']/pre[@class = 'log ng-binding']
     ${request_id}=    Parse Request Id     ${response text}
-    Poll MSO Get Request    ${GLOBAL_MSO_STATUS_PATH}${request_id}   COMPLETE
-
+    ${auth}=	Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    SO.Run Polling Get Request    ${GLOBAL_SO_ENDPOINT}    ${GLOBAL_MSO_STATUS_PATH}${request_id}    auth=${auth}
 
 Search Service Instance
     [Arguments]    ${service_instance_id}
diff --git a/robot/resources/vid/create_vid_vnf.robot b/robot/resources/vid/create_vid_vnf.robot
index a0110a2..cdcee11 100644
--- a/robot/resources/vid/create_vid_vnf.robot
+++ b/robot/resources/vid/create_vid_vnf.robot
@@ -5,12 +5,11 @@
 Library         String
 Library        DateTime
 Library 	      RequestsLibrary
-
-Resource          ../so_interface.robot
+Resource          ../global_properties.robot
 Resource          vid_interface.robot
+Library    ONAPLibrary.SO    WITH NAME    SO
 
 *** Keywords ***
-
 Create VID VNF
     [Documentation]    Creates a VNF instance using VID for passed instance id with the passed service instance name
     [Arguments]    ${service_instance_id}    ${service_instance_name}    ${product_family}    ${lcp_region}    ${tenant}   ${vnf_type}   ${customer}   ${line_of_business}=LOB-Demonstration   ${platform}=Platform-Demonstration
@@ -84,7 +83,8 @@
 
     ${response text}=    Get Text    xpath=//div[@ng-controller='deletionDialogController']//div[@ng-controller= 'msoCommitController']/pre[@class = 'log ng-binding']
     ${request_id}=    Parse Request Id     ${response text}
-    Poll MSO Get Request    ${GLOBAL_MSO_STATUS_PATH}${request_id}   COMPLETE
+    ${auth}=	Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    ${resp}=	SO.Run Polling Get Request    ${GLOBAL_SO_ENDPOINT}    ${GLOBAL_MSO_STATUS_PATH}${request_id}    auth=${auth}
 
 Create VID VNF module
     [Arguments]    ${service_instance_id}    ${vf_module_name}    ${lcp_region}    ${TENANT}    ${VNF_TYPE}   ${customer}   ${vnf_name}  
@@ -124,7 +124,8 @@
     ${instance_id}=    Parse Instance Id     ${response text}
 
     ${request_id}=    Parse Request Id     ${response text}
-    Poll MSO Get Request    ${GLOBAL_MSO_STATUS_PATH}${request_id}   COMPLETE
+    ${auth}=	Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    ${resp}=	SO.Run Polling Get Request    ${GLOBAL_SO_ENDPOINT}    ${GLOBAL_MSO_STATUS_PATH}${request_id}    auth=${auth}
     [Return]     ${instance_id}
 
 Wait For Add VF Module
diff --git a/robot/resources/vid/teardown_vid.robot b/robot/resources/vid/teardown_vid.robot
index f1b6daa..706c3c4 100644
--- a/robot/resources/vid/teardown_vid.robot
+++ b/robot/resources/vid/teardown_vid.robot
@@ -3,6 +3,7 @@
 Library 	    SeleniumLibrary
 Library         Collections
 Library         String
+Library        ONAPLibrary.SO    WITH NAME     SO
 Resource        vid_interface.robot
 Resource        create_vid_vnf.robot
 Resource        create_service_instance.robot
@@ -81,7 +82,8 @@
     ${response text}=    Get Text    xpath=//div[@ng-controller='deletionDialogController']//div[@ng-controller= 'msoCommitController']/pre[@class = 'log ng-binding']
     ${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
+    ${auth}=	Create List  ${GLOBAL_MSO_USERNAME}    ${GLOBAL_MSO_PASSWORD}
+    ${resp}=	SO.Run Polling Get Request    ${GLOBAL_SO_ENDPOINT}    ${GLOBAL_MSO_STATUS_PATH}${request_id}    auth=${auth}
     [Return]   ${teardown_status}    ${vfmodule}
 
 Handle VID Alert
diff --git a/robot/testsuites/create-cloud-config.robot b/robot/testsuites/create-cloud-config.robot
index 662bc29..385f6ec 100644
--- a/robot/testsuites/create-cloud-config.robot
+++ b/robot/testsuites/create-cloud-config.robot
@@ -3,7 +3,7 @@
 Test Timeout    1 minute
 
 
-Resource          ../resources/so/create_cloud_config.robot
+Resource          ../resources/so_interface.robot
 Resource          ../resources/aai/create_tenant.robot
 
 
