return loopService.updateAndSaveGlobalPropertiesJson(loopName, globalProperties);
     }
 
+    public MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) {
+        return loopService.updateMicroservicePolicy(loopName, newMicroservicePolicy);
+    }
+
     public String getSVGRepresentation(String loopName) {
         return loopService.getClosedLoopModelSVG(loopName);
 
 
         return loopsRepository.save(loop);
     }
 
+    MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) {
+       Loop loop = findClosedLoopByName(loopName);
+        MicroServicePolicy newPolicies = microservicePolicyService
+                .getAndUpdateMicroServicePolicy(loop, newMicroservicePolicy);
+        return newPolicies;
+    }
+
     private Loop updateOperationalPolicies(Loop loop, List<OperationalPolicy> newOperationalPolicies) {
         Set<OperationalPolicy> newPolicies = operationalPolicyService
                 .updatePolicies(loop, newOperationalPolicies);
 
 package org.onap.clamp.policy.microservice;
 
 import com.google.common.collect.Sets;
+
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
-import org.onap.clamp.policy.PolicyService;
+
 import org.onap.clamp.loop.Loop;
+import org.onap.clamp.policy.PolicyService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
     @Override
     @Transactional
-    public Set<MicroServicePolicy> updatePolicies(Loop loop,
-        List<MicroServicePolicy> newMicroservicePolicies) {
-        return newMicroservicePolicies
-            .stream()
-            .map(policy ->
-                getAndUpdateMicroServicePolicy(loop, policy))
+    public Set<MicroServicePolicy> updatePolicies(Loop loop, List<MicroServicePolicy> newMicroservicePolicies) {
+        return newMicroservicePolicies.stream().map(policy -> getAndUpdateMicroServicePolicy(loop, policy))
             .collect(Collectors.toSet());
     }
 
         return repository.existsById(policyName);
     }
 
-    private MicroServicePolicy getAndUpdateMicroServicePolicy(Loop loop, MicroServicePolicy policy) {
-        return repository
-            .findById(policy.getName())
-            .map(p -> updateMicroservicePolicyProperties(p, policy, loop))
-            .orElse(new MicroServicePolicy(policy.getName(), policy.getPolicyTosca(),
-                policy.getShared(), policy.getJsonRepresentation(),
-                Sets.newHashSet(loop)));
+    public MicroServicePolicy getAndUpdateMicroServicePolicy(Loop loop, MicroServicePolicy policy) {
+        return repository.findById(policy.getName()).map(p -> updateMicroservicePolicyProperties(p, policy, loop))
+            .orElse(new MicroServicePolicy(policy.getName(), policy.getPolicyTosca(), policy.getShared(),
+                policy.getJsonRepresentation(), Sets.newHashSet(loop)));
     }
 
     private MicroServicePolicy updateMicroservicePolicyProperties(MicroServicePolicy oldPolicy,
 
                                }
                                console.log("save properties; add tableVal to policies: "+ tableVal);
                        });
-
-                       saveOpPolicyProperties(finalSaveList);
+                       var scope = angular.element(document.getElementById('formSpan')).scope();
+                       scope.submitForm(finalSaveList);
                        $("#close_button").click();
                })              
 
 
                $("#pid").val(0);
 
-               setASDCFields();
                initTargetResourceId();
                //load metrics dropdown
                if (elementMap["global"]) {
 
                                                Deploy Parameters</label>
 
                                        <div class="col-sm-8">
-                                               <textarea class="form-control" id="deployParameters"
-                                                       name="deployParameters" rows="3">
+                                               <textarea class="form-control" id="dcaeDeployParameters"
+                                                       name="dcaeDeployParameters" rows="3">
                                                </textarea>
 
                                        </div>
 
                            $("#svgContainer svg").attr('height', '100%');
                            $("#svgContainer").click(
                            function(event) {
-                                   console.log("svgContainer:" + $("#svgContainer svg"));
                                    var name = $($($($(event.target).parent()).parent()).parent()).attr("data-element-id")
-                                   lastElementSelected = $($(event.target).parent()).attr(
-                                   "data-element-id")
                                    checkIfElementType(name)
                            });
                        }, function(data) {
 
        cldsModelService.getSavedModel().then(function(pars) {
                $scope.modelNamel = []
                for (var i = 0; i < pars.length; i++) {
-                       $scope.modelNamel.push(pars[i].value);
+                       $scope.modelNamel.push(pars[i]);
                }
                setTimeout(function() {
                        setMultiSelect();
 
 '$scope',
 '$rootScope',
 '$uibModalInstance',
+'$http',
+'$q',
 'cldsModelService',
 '$location',
 'dialogs',
-function($scope, $rootScope, $uibModalInstance, cldsModelService, $location,
+function($scope, $rootScope, $uibModalInstance, $http, $q, cldsModelService, $location,
          dialogs) {
        $scope.$watch('name', function(newValue, oldValue) {
 
                var el = getGlobalProperty();
                if (el !== undefined) {
-                       for (var i = 0; i < el.length; i++) {
-                               if (el[i].name === 'deployParameters')
+                       for (var key in el) {
+                               if (key === 'dcaeDeployParameters')
                                {
-                                       // This is a special case, that value is not a string but a JSON
-                                       $("#" + el[i].name).val(JSON.stringify(el[i].value));
+                                       $("#" + key).val(JSON.stringify(el[key]));
                                } else {
-                                       $("#" + el[i].name).val(el[i].value);
+                                       $("#" + key).val(el[key]);
                                }
                        }
                }
                $uibModalInstance.close("closed");
        };
 
+
     function noRepeats(form) {
+       
         var select = {};
         for (var i = 0; i < form.length; i++) {
                if (form[i].hasOwnProperty("name")) {
-                       if (form[i].name === 'deployParameters') {
+                       if (form[i].name === 'dcaeDeployParameters') {
                                        // This is a special case, that value MUST not be a string but a JSON
                                select[form[i].name]=JSON.parse(form[i].value);
                        } else {
     }
     
     $scope.submitForm = function() {
-        saveGlobalProperties(noRepeats($("#saveProps").serializeArray()))
+       var form = noRepeats($("#saveProps").serializeArray());
+       var obj = {};
+               for( var i = 0; i < form.length; ++i ) {
+                       var name = form[i].name;
+                       var value = form[i].value;
+                       if( name ) {
+                               obj[ name ] = value;
+                       }
+               }
+
+       $scope.saveGlobalProperties(JSON.stringify(obj)).then(function(pars) {
+               updateGlobalProperties(obj);
+               }, function(data) {
+               });
         $uibModalInstance.close();
-    }
-  
+    };
+       $scope.saveGlobalProperties = function(form) {
+               var modelName = getLoopName();
+                var def = $q.defer();
+                var svcUrl = "/restservices/clds/v2/loop/updateGlobalProperties/" + modelName;
+                $http.post(svcUrl, form).success(function(data) {
+                        def.resolve(data);
+                }).error(function(data) {
+                        def.reject("Save Model not successful");
+                });
+              return def.promise;
+          };
 } ]);
 
                        // $scope.name = 'You did not enter in your name!';
                });
        };
+
+       $scope.submitForm = function(obj) {
+               var operationalPolicies = getOperationalPolicies();
+               if (obj !== null) {
+                       operationalPolicies[0]["configurationsJson"] = obj;
+               }
+               svnservice.saveOpPolicyProperties(operationalPolicies).then(function(pars) {
+                       updateOpPolicyProperties(operationalPolicies);
+               }, function(data) {
+               });
+     };
+
 } ]);
\ No newline at end of file
 
         }
 
         $scope.saveToscaProps = function(){
-               var policyType = $rootScope.selectedBoxName.split('_')[0].toLowerCase();
-               var data = $scope.getEditorData();
+               var policyType = $rootScope.selectedBoxName;
+            var data = $scope.getEditorData();
 
             if(data !== null) {
-               saveMsProperties(policyType,data);
-                       if($scope.editor) { $scope.editor.destroy(); $scope.editor = null; }
-                       $modalInstance.close('closed');
-               }
+               var msJson = getMsJson(policyType);
+               msJson["properties"] = data;
+               cldsModelService.saveMsProperties(msJson).then(function(pars) {
+                       saveMsProperties(policyType, data);
+               }, function(data) {
+               });
+               if($scope.editor) { $scope.editor.destroy(); $scope.editor = null; }
+               $modalInstance.close('closed');
+            }
         }
 
         $scope.displayErrorMessage = function(errors){
 
                        return response.data;
                });
        };
+       
+       this.saveMsProperties = function(form) {
+                var loopName = getLoopName();
+                var def = $q.defer();
+                var svcUrl = "/restservices/clds/v2/loop/updateMicroservicePolicies/" + loopName;
+                $http.post(svcUrl, form).success(function(data) {
+                        def.resolve(data);
+                }).error(function(data) {
+                        def.reject("Save Model not successful");
+                });
+           return def.promise;
+       };
  }]);
 
         
         return def.promise;
     };
+    
+       this.saveOpPolicyProperties = function(form) {
+               var modelName = getLoopName();
+                var def = $q.defer();
+                var svcUrl = "/restservices/clds/v2/loop/updateOperationalPolicies/" + modelName;
+                $http.post(svcUrl, form).success(function(data) {
+                        def.resolve(data);
+                }).error(function(data) {
+                        def.reject("Save Operational Policy not successful");
+                });
+              return def.promise;
+       };
 }]);
\ No newline at end of file
 
            } else {
                    document.getElementById('Properties CL').classList
                    .remove('ThisLink');
-                   document.getElementById('Revert Model Changes').classList
-                   .remove('ThisLink');
                    document.getElementById('Close Model').classList
                    .remove('ThisLink');
                    document.getElementById('Refresh Status').classList
 
                newMsProperties[p]["properties"] = form;
         }
     }
-
-        var def = $q.defer();
-        var sets = [];
-        var svcUrl = "/restservices/clds/v2/loop/updateMicroservicePolicies/" + modelName;
-        var svcRequest = {
-                        loopName : modelName,
-                        newMicroservicePolicies : newMsProperties
-        };
-        $http.post(svcUrl, svcRequest).success(function(data) {
-                def.resolve(data);
-        }).error(function(data) {
-                def.reject("Save Model not successful");
-        });
-    cl_props["microServicePolicies"] = newMsProperties;
-    return def.promise;
 }
 
-function saveGlobalProperties(form) {
-        var def = $q.defer();
-        var sets = [];
-        var svcUrl = "/restservices/clds/v2/loop/globalProperties/" + modelName;
-        var svcRequest = {
-                        loopName : modelName,
-                        newGlobalPolicies : form
-        };
-        $http.post(svcUrl, svcRequest).success(function(data) {
-                def.resolve(data);
-        }).error(function(data) {
-                def.reject("Save Model not successful");
-        });
+function updateGlobalProperties(form) {
     cl_props["globalPropertiesJson"] = form;
-    return def.promise;
 }
 
-function saveOpPolicyProperties(form) {
-       var newOpProperties = cl_props["operationalPolicies"];
-       newOpProperties["0"]["configurationsJson"]= form;
-       
-       var def = $q.defer();
-        var sets = [];
-        var svcUrl = "/restservices/clds/v2/loop/updateOperationalPolicies/" + modelName;
-        var svcRequest = {
-                        loopName : modelName,
-                        newGlobalPolicies : newOpProperties
-        };
-        $http.post(svcUrl, svcRequest).success(function(data) {
-                def.resolve(data);
-        }).error(function(data) {
-                def.reject("Save Model not successful");
-   });
-       
+function updateOpPolicyProperties(form) {      
    cl_props["operationalPolicies"] = newOpProperties;
-   return def.promise;
+}
+
+function getLoopName() {
+    return cl_props["name"];
 }
 
 function getOperationalPolicyProperty() {
     return cl_props["operationalPolicies"]["0"]["configurationsJson"];
 }
 
+function getOperationalPolicies() {
+    return cl_props["operationalPolicies"];
+}
+
 function getGlobalProperty() {
     return cl_props["globalPropertiesJson"];
 }
 
+function getMsJson(type) {
+    var msProperties = cl_props["microServicePolicies"];
+    for (p in msProperties) {
+        if (msProperties[p]["name"] == type) {
+           return msProperties[p];
+        }
+    }
+    return null;
+}
+
 function getMsProperty(type) {
     var msProperties = cl_props["microServicePolicies"];
     for (p in msProperties) {
 
                 <to uri="bean:org.onap.clamp.loop.LoopController?method=updateOperationalPolicies(${header.loopName},${body})" />
             </route>
         </post>
-        <post uri="/v2/loop/updateMicroservicePolicies/{loopName}"
-            type="com.google.gson.JsonArray"
+        <post uri="/v2/loop/updateMicroservicePolicy/{loopName}"
+            type="org.onap.clamp.policy.microservice.MicroServicePolicy"
             consumes="application/json"
-            outType="org.onap.clamp.loop.Loop"
+            outType="org.onap.clamp.policy.microservice.MicroServicePolicy"
             produces="application/json">
             <route>
                 <to uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-                <to uri="bean:org.onap.clamp.loop.LoopController?method=updateMicroservicePolicies(${header.loopName},${body})" />
+                <to uri="bean:org.onap.clamp.loop.LoopController?method=updateMicroservicePolicy(${header.loopName},${body})" />
             </route>
         </post>
     </rest>