diff --git a/xos/synchronizer/steps/sync_onosapp.py b/xos/synchronizer/steps/sync_onosapp.py
index 78a8cc8..d421aa1 100644
--- a/xos/synchronizer/steps/sync_onosapp.py
+++ b/xos/synchronizer/steps/sync_onosapp.py
@@ -178,7 +178,7 @@
 
         data = {
             "apps" : {
-                "org.onosproject.cordvtn" : {
+                "org.opencord.vtn" : {
                     "cordvtn" : {
                         "privateGatewayMac" : privateGatewayMac,
                         "localManagementIp": localManagementIp,
@@ -206,7 +206,7 @@
             }
         }
 
-        # Generate apps->org.onosproject.cordvtn->cordvtn->nodes
+        # Generate apps->org.opencord.vtn->cordvtn->nodes
         nodes = Node.objects.all()
         for node in nodes:
             nodeip = socket.gethostbyname(node.name)
@@ -226,7 +226,7 @@
                 "dataPlaneIntf": dataPlaneIntf,
                 "dataPlaneIp": dataPlaneIp
             }
-            data["apps"]["org.onosproject.cordvtn"]["cordvtn"]["nodes"].append(node_dict)
+            data["apps"]["org.opencord.vtn"]["cordvtn"]["nodes"].append(node_dict)
 
         # Generate apps->org.onosproject.cordvtn->cordvtn->publicGateways
         # Pull the gateway information from vRouter
@@ -239,7 +239,7 @@
                     "gatewayIp": gatewayIp,
                     "gatewayMac": gatewayMac
                 }
-                data["apps"]["org.onosproject.cordvtn"]["cordvtn"]["publicGateways"].append(gateway_dict)
+                data["apps"]["org.opencord.vtn"]["cordvtn"]["publicGateways"].append(gateway_dict)
 
         return json.dumps(data, indent=4, sort_keys=True)
 
@@ -491,6 +491,11 @@
         else:
             fields["dependencies"] = []
 
+        if o.install_dependencies:
+            fields["install_dependencies"] = [x.strip() for x in o.install_dependencies.split(",")]
+        else:
+            fields["install_dependencies"] = []
+
         return fields
 
     def get_extra_attributes_full(self, o):
@@ -503,11 +508,6 @@
         fields["component_configs"] = o.component_configs
         fields["node_key_fn"] = o.node_key_fn
 
-        if o.install_dependencies:
-            fields["install_dependencies"] = [x.strip() for x in o.install_dependencies.split(",")]
-        else:
-            fields["install_dependencies"] = []
-
         if (instance.isolation=="container"):
             fields["ONOS_container"] = "%s-%s" % (instance.slice.name, str(instance.id))
         else:
