diff --git a/xos/synchronizer/Dockerfile.synchronizer b/xos/synchronizer/Dockerfile.synchronizer
new file mode 100644
index 0000000..c1a6a6b
--- /dev/null
+++ b/xos/synchronizer/Dockerfile.synchronizer
@@ -0,0 +1,9 @@
+FROM xosproject/xos-synchronizer-base
+
+ADD . /opt/xos/synchronizers/veg
+
+ENTRYPOINT []
+
+WORKDIR "/opt/xos/synchronizers/veg"
+
+CMD bash -c "cd /opt/xos/synchronizers/veg; ./run-from-api.sh"
\ No newline at end of file
diff --git a/xos/synchronizer/Makefile b/xos/synchronizer/Makefile
new file mode 100644
index 0000000..a5bd739
--- /dev/null
+++ b/xos/synchronizer/Makefile
@@ -0,0 +1,5 @@
+synchronizer:
+	sudo docker build --rm -f Dockerfile.synchronizer -t xosproject/veg-synchronizer .
+
+up:
+	docker-compose -p veg up -d
\ No newline at end of file
diff --git a/xos/synchronizer/docker-compose.yml b/xos/synchronizer/docker-compose.yml
new file mode 100644
index 0000000..a8ff7f3
--- /dev/null
+++ b/xos/synchronizer/docker-compose.yml
@@ -0,0 +1,23 @@
+version: '2'
+
+networks:
+  xos:
+    external: true
+
+services:
+  synchronizer:
+    image: xosproject/veg-synchronizer
+    networks:
+      - xos
+    #command: bash -c "sleep 86400"
+    volumes:
+        - /opt/cord_profile/key_import/veg_rsa:/opt/xos/services/veg/keys/veg_rsa:ro
+        - /opt/cord_profile/node_key:/opt/cord_profile/node_key:ro
+        - /opt/cord/build/platform-install/credentials/xosadmin@opencord.org:/opt/xos/services/veg/credentials/xosadmin@opencord.org
+    external_links:
+        - rcordbs_xos_redis_1:redis
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "1000k"
+        max-file: "5"
\ No newline at end of file
diff --git a/xos/synchronizer/manifest b/xos/synchronizer/manifest
index 959c763..4fb448b 100644
--- a/xos/synchronizer/manifest
+++ b/xos/synchronizer/manifest
@@ -47,5 +47,5 @@
 model-deps
 supervisor/veg-observer.conf
 run.sh
-vtn_veg_synchronizer_config
-veg_stats_notifier.py
+veg_synchronizer_config
+veg_stats_notifier.py
\ No newline at end of file
diff --git a/xos/synchronizer/run-from-api.sh b/xos/synchronizer/run-from-api.sh
new file mode 100644
index 0000000..cebe5f8
--- /dev/null
+++ b/xos/synchronizer/run-from-api.sh
@@ -0,0 +1,2 @@
+export XOS_DIR=/opt/xos
+python veg-synchronizer.py  -C $XOS_DIR/synchronizers/veg/veg_from_api_config
\ No newline at end of file
diff --git a/xos/synchronizer/steps/sync_monitoring_agent.yaml b/xos/synchronizer/steps/sync_monitoring_agent.yaml
index 36b7221..17dd0c0 100644
--- a/xos/synchronizer/steps/sync_monitoring_agent.yaml
+++ b/xos/synchronizer/steps/sync_monitoring_agent.yaml
@@ -2,7 +2,8 @@
 - hosts: {{ instance_name }}
   gather_facts: False
   connection: ssh
-  user: ubuntu
+  become: ubuntu
+
   vars:
       keystone_tenant_id: {{ keystone_tenant_id }}
       keystone_user_id: {{ keystone_user_id }}
@@ -12,7 +13,7 @@
 
   tasks:
   - name: Verify if veg_stats_notifier ([] is to avoid capturing the shell process) cron job is already running
-    shell: pgrep -f [v]cpe_stats_notifier | wc -l
+    shell: pgrep -f [v]veg_stats_notifier | wc -l
     register: cron_job_pids_count
 
   - name: DEBUG
diff --git a/xos/synchronizer/steps/sync_vegtenant.py b/xos/synchronizer/steps/sync_vegtenant.py
index 2b64bb1..d22b738 100644
--- a/xos/synchronizer/steps/sync_vegtenant.py
+++ b/xos/synchronizer/steps/sync_vegtenant.py
@@ -5,57 +5,36 @@
 import base64
 import time
 from urlparse import urlparse
-from django.db.models import F, Q
 from xos.config import Config
-from synchronizers.base.syncstep import SyncStep
-from synchronizers.base.ansible_helper import run_template_ssh
-from synchronizers.base.SyncInstanceUsingAnsible import SyncInstanceUsingAnsible
-from core.models import Service, Slice, Tag, ModelLink, CoarseTenant, Tenant, ServiceMonitoringAgentInfo
-from services.veg.models import VEGService, VEGTenant
+from synchronizers.new_base.SyncInstanceUsingAnsible import SyncInstanceUsingAnsible
+from synchronizers.new_base.modelaccessor import *
+from synchronizers.new_base.ansible_helper import run_template_ssh
 from xos.logger import Logger, logging
 
-# Deal with configurations where the hpc service is not onboarded
-try:
-    from services.hpc.models import HpcService, CDNPrefix
-    hpc_service_onboarded=True
-except:
-    hpc_service_onboarded=False
-
 # hpclibrary will be in steps/..
 parentdir = os.path.join(os.path.dirname(__file__),"..")
 sys.path.insert(0,parentdir)
 
-from broadbandshield import BBS
 
 logger = Logger(level=logging.INFO)
 
 ENABLE_QUICK_UPDATE=False
 
-CORD_USE_VTN = getattr(Config(), "networking_use_vtn", False)
-
 class SyncVEGTenant(SyncInstanceUsingAnsible):
     provides=[VEGTenant]
     observes=VEGTenant
     requested_interval=0
     template_name = "sync_vegtenant.yaml"
-    watches = [ModelLink(CoarseTenant,via='coarsetenant'), ModelLink(ServiceMonitoringAgentInfo,via='monitoringagentinfo')]
+    watches = [ModelLink(ServiceDependency, via='servicedependency'), ModelLink(ServiceMonitoringAgentInfo, via='monitoringagentinfo')]
 
     def __init__(self, *args, **kwargs):
         super(SyncVEGTenant, self).__init__(*args, **kwargs)
 
-    def fetch_pending(self, deleted):
-        if (not deleted):
-            objs = VEGTenant.get_tenant_objects().filter(Q(enacted__lt=F('updated')) | Q(enacted=None),Q(lazy_blocked=False))
-        else:
-            objs = VEGTenant.get_deleted_tenant_objects()
-
-        return objs
-
     def get_veg_service(self, o):
         if not o.provider_service:
             return None
 
-        vegs = VEGService.get_service_objects().filter(id=o.provider_service.id)
+        vegs = VEGService.objects.filter(id=o.provider_service.id)
         if not vegs:
             return None
 
@@ -66,7 +45,6 @@
         # object itself. In the case of vEG, we need to know:
         #   1) the addresses of dnsdemux, to setup dnsmasq in the vEG
         #   2) CDN prefixes, so we know what URLs to send to dnsdemux
-        #   3) BroadBandShield server addresses, for parental filtering
         #   4) vlan_ids, for setting up networking in the vEG VM
 
         veg_service = self.get_veg_service(o)
@@ -83,60 +61,9 @@
             if len(lines)>=2:
                 dnsdemux_ip = lines[0].strip()
                 cdn_prefixes = [x.strip() for x in lines[1:] if x.strip()]
-        elif hpc_service_onboarded:
-            # automatic CDN configuiration
-            #    it learns everything from CDN objects in XOS
-            #    not tested on pod.
-            if veg_service.backend_network_label:
-                # Connect to dnsdemux using the network specified by
-                #     veg_service.backend_network_label
-                for service in HpcService.objects.all():
-                    for slice in service.slices.all():
-                        if "dnsdemux" in slice.name:
-                            for instance in slice.instances.all():
-                                for ns in instance.ports.all():
-                                    if ns.ip and ns.network.labels and (veg_service.backend_network_label in ns.network.labels):
-                                        dnsdemux_ip = ns.ip
-                if not dnsdemux_ip:
-                    logger.info("failed to find a dnsdemux on network %s" % veg_service.backend_network_label,extra=o.tologdict())
-            else:
-                # Connect to dnsdemux using the instance's public address
-                for service in HpcService.objects.all():
-                    for slice in service.slices.all():
-                        if "dnsdemux" in slice.name:
-                            for instance in slice.instances.all():
-                                if dnsdemux_ip=="none":
-                                    try:
-                                        dnsdemux_ip = socket.gethostbyname(instance.node.name)
-                                    except:
-                                        pass
-                if not dnsdemux_ip:
-                    logger.info("failed to find a dnsdemux with a public address",extra=o.tologdict())
-
-            for prefix in CDNPrefix.objects.all():
-                cdn_prefixes.append(prefix.prefix)
 
         dnsdemux_ip = dnsdemux_ip or "none"
 
-        # Broadbandshield can either be set up internally, using veg_service.bbs_slice,
-        # or it can be setup externally using veg_service.bbs_server.
-
-        bbs_addrs = []
-        if veg_service.bbs_slice:
-            if veg_service.backend_network_label:
-                for bbs_instance in veg_service.bbs_slice.instances.all():
-                    for ns in bbs_instance.ports.all():
-                        if ns.ip and ns.network.labels and (veg_service.backend_network_label in ns.network.labels):
-                            bbs_addrs.append(ns.ip)
-            else:
-                logger.info("unsupported configuration -- bbs_slice is set, but backend_network_label is not",extra=o.tologdict())
-            if not bbs_addrs:
-                logger.info("failed to find any usable addresses on bbs_slice",extra=o.tologdict())
-        elif veg_service.bbs_server:
-            bbs_addrs.append(veg_service.bbs_server)
-        else:
-            logger.info("neither bbs_slice nor bbs_server is configured in the vEG",extra=o.tologdict())
-
         s_tags = []
         c_tags = []
         if o.volt:
@@ -167,11 +94,10 @@
         fields = {"s_tags": s_tags,
                 "c_tags": c_tags,
                 "docker_remote_image_name": veg_service.docker_image_name,
-                "docker_local_image_name": veg_service.docker_image_name, # veg_service.docker_image_name.split("/",1)[1].split(":",1)[0],
+                "docker_local_image_name": veg_service.docker_image_name,
                 "docker_opts": " ".join(docker_opts),
                 "dnsdemux_ip": dnsdemux_ip,
                 "cdn_prefixes": cdn_prefixes,
-                "bbs_addrs": bbs_addrs,
                 "full_setup": full_setup,
                 "isolation": o.instance.isolation,
                 "safe_browsing_macs": safe_macs,
@@ -192,63 +118,6 @@
 
         super(SyncVEGTenant, self).sync_fields(o, fields)
 
-        # now do all of our broadbandshield stuff...
-
-        service = self.get_veg_service(o)
-        if not service:
-            # Ansible uses the service's keypair in order to SSH into the
-            # instance. It would be bad if the slice had no service.
-
-            raise Exception("Slice %s is not associated with a service" % instance.slice.name)
-
-        # Make sure the slice is configured properly
-        if (service != o.instance.slice.service):
-            raise Exception("Slice %s is associated with some service that is not %s" % (str(instance.slice), str(service)))
-
-        # only enable filtering if we have a subscriber object (see below)
-        url_filter_enable = False
-
-        # for attributes that come from CordSubscriberRoot
-        if o.volt and o.volt.subscriber:
-            url_filter_enable = o.volt.subscriber.url_filter_enable
-            url_filter_level = o.volt.subscriber.url_filter_level
-            url_filter_users = o.volt.subscriber.devices
-
-        if service.url_filter_kind == "broadbandshield":
-            # disable url_filter if there are no bbs_addrs
-            if url_filter_enable and (not fields.get("bbs_addrs",[])):
-                logger.info("disabling url_filter because there are no bbs_addrs",extra=o.tologdict())
-                url_filter_enable = False
-
-            if url_filter_enable:
-                bbs_hostname = None
-                if service.bbs_api_hostname and service.bbs_api_port:
-                    bbs_hostname = service.bbs_api_hostname
-                else:
-                    # TODO: extract from slice
-                    bbs_hostname = "cordcompute01.onlab.us"
-
-                if service.bbs_api_port:
-                    bbs_port = service.bbs_api_port
-                else:
-                    bbs_port = 8018
-
-                if not bbs_hostname:
-                    logger.info("broadbandshield is not configured",extra=o.tologdict())
-                else:
-                    tStart = time.time()
-                    bbs = BBS(o.bbs_account, "123", bbs_hostname, bbs_port)
-                    bbs.sync(url_filter_level, url_filter_users)
-
-                    if o.hpc_client_ip:
-                        logger.info("associate account %s with ip %s" % (o.bbs_account, o.hpc_client_ip),extra=o.tologdict())
-                        bbs.associate(o.hpc_client_ip)
-                    else:
-                        logger.info("no hpc_client_ip to associate",extra=o.tologdict())
-
-                    logger.info("bbs update time %d" % int(time.time()-tStart),extra=o.tologdict())
-
-
     def run_playbook(self, o, fields):
         ansible_hash = hashlib.md5(repr(sorted(fields.items()))).hexdigest()
         quick_update = (o.last_ansible_hash == ansible_hash)
@@ -257,12 +126,10 @@
             logger.info("quick_update triggered; skipping ansible recipe",extra=o.tologdict())
         else:
             if o.instance.isolation in ["container", "container_vm"]:
+                raise Exception("probably not implemented")
                 super(SyncVEGTenant, self).run_playbook(o, fields, "sync_vegtenant_new.yaml")
             else:
-                if CORD_USE_VTN:
-                    super(SyncVEGTenant, self).run_playbook(o, fields, template_name="sync_vegtenant_vtn.yaml")
-                else:
-                    super(SyncVEGTenant, self).run_playbook(o, fields)
+                super(SyncVEGTenant, self).run_playbook(o, fields, template_name="sync_vegtenant_vtn.yaml")
 
         o.last_ansible_hash = ansible_hash
 
@@ -305,4 +172,3 @@
 
             template_name = "sync_monitoring_agent.yaml"
             super(SyncVEGTenant, self).run_playbook(obj, fields, template_name)
-        pass
diff --git a/xos/synchronizer/steps/sync_vegtenant.yaml b/xos/synchronizer/steps/sync_vegtenant.yaml
index eba2a97..59605e0 100644
--- a/xos/synchronizer/steps/sync_vegtenant.yaml
+++ b/xos/synchronizer/steps/sync_vegtenant.yaml
@@ -2,8 +2,8 @@
 - hosts: {{ instance_name }}
   gather_facts: False
   connection: ssh
-  user: ubuntu
-  sudo: yes
+  become_user: ubuntu
+
   vars:
       cdn_enable: {{ cdn_enable }}
       dnsdemux_ip: {{ dnsdemux_ip }}
@@ -99,7 +99,7 @@
       dest=/etc/resolv.conf
 
   - name: Verify if veg_stats_notifier ([] is to avoid capturing the shell process) cron job is already running
-    shell: pgrep -f [v]cpe_stats_notifier | wc -l
+    shell: pgrep -f [v]veg_stats_notifier | wc -l
     register: cron_job_pids_count
 
 #  - name: DEBUG
diff --git a/xos/synchronizer/steps/sync_vegtenant_new.yaml b/xos/synchronizer/steps/sync_vegtenant_new.yaml
index daa30f8..2941cae 100644
--- a/xos/synchronizer/steps/sync_vegtenant_new.yaml
+++ b/xos/synchronizer/steps/sync_vegtenant_new.yaml
@@ -2,8 +2,8 @@
 - hosts: {{ instance_name }}
   gather_facts: False
   connection: ssh
-  user: {{ username }}
-  sudo: yes
+  become_user: {{ username }}
+
   vars:
       container_name: {{ container_name }}
       cdn_enable: {{ cdn_enable }}
@@ -63,7 +63,7 @@
 
   tasks:
   - name: Verify if veg_stats_notifier ([] is to avoid capturing the shell process) cron job is already running
-    shell: pgrep -f [v]cpe_stats_notifier | wc -l
+    shell: pgrep -f [v]veg_stats_notifier | wc -l
     register: cron_job_pids_count
 
 #  - name: DEBUG
diff --git a/xos/synchronizer/steps/sync_vegtenant_vtn.yaml b/xos/synchronizer/steps/sync_vegtenant_vtn.yaml
index fed64ab..5a619ee 100644
--- a/xos/synchronizer/steps/sync_vegtenant_vtn.yaml
+++ b/xos/synchronizer/steps/sync_vegtenant_vtn.yaml
@@ -2,8 +2,8 @@
 - hosts: {{ instance_name }}
   #gather_facts: False
   connection: ssh
-  user: ubuntu
-  sudo: yes
+  become_user: ubuntu
+
   vars:
       container_name: {{ container_name }}
       cdn_enable: {{ cdn_enable }}
@@ -29,10 +29,6 @@
         {% for prefix in cdn_prefixes %}
         - {{ prefix }}
         {% endfor %}
-      bbs_addrs:
-        {% for bbs_addr in bbs_addrs %}
-        - {{ bbs_addr }}
-        {% endfor %}
       dns_servers:
         {% for dns_server in dns_servers %}
         - {{ dns_server }}
@@ -120,7 +116,7 @@
     shell: touch /root/environment_is_setup
 
   - name: Verify if veg_stats_notifier ([] is to avoid capturing the shell process) cron job is already running
-    shell: pgrep -f [v]cpe_stats_notifier | wc -l
+    shell: pgrep -f [v]veg_stats_notifier | wc -l
     register: cron_job_pids_count
 
 #  - name: DEBUG
diff --git a/xos/synchronizer/templates/dnsmasq_safe_servers.j2 b/xos/synchronizer/templates/dnsmasq_safe_servers.j2
index 0b3c807..0cab15a 100644
--- a/xos/synchronizer/templates/dnsmasq_safe_servers.j2
+++ b/xos/synchronizer/templates/dnsmasq_safe_servers.j2
@@ -1,4 +1,4 @@
-# This file autogenerated by vCPE observer
+# This file autogenerated by vEG observer
 # It contains a list of DNS servers for dnsmasq to use.
 no-resolv
 
diff --git a/xos/synchronizer/templates/dnsmasq_servers.j2 b/xos/synchronizer/templates/dnsmasq_servers.j2
index 7ecb319..539bd6c 100644
--- a/xos/synchronizer/templates/dnsmasq_servers.j2
+++ b/xos/synchronizer/templates/dnsmasq_servers.j2
@@ -1,4 +1,4 @@
-# This file autogenerated by vCPE observer
+# This file autogenerated by vEG observer
 # It contains a list of DNS servers for dnsmasq to use.
 no-resolv
 
diff --git a/xos/synchronizer/veg-synchronizer.py b/xos/synchronizer/veg-synchronizer.py
index 84bec4f..26b44df 100755
--- a/xos/synchronizer/veg-synchronizer.py
+++ b/xos/synchronizer/veg-synchronizer.py
@@ -5,7 +5,7 @@
 import importlib
 import os
 import sys
-observer_path = os.path.join(os.path.dirname(os.path.realpath(__file__)),"../../synchronizers/base")
+observer_path = os.path.join(os.path.dirname(os.path.realpath(__file__)),"../../synchronizers/new_base")
 sys.path.append(observer_path)
 mod = importlib.import_module("xos-synchronizer")
 mod.main()
diff --git a/xos/synchronizer/veg_from_api_config b/xos/synchronizer/veg_from_api_config
new file mode 100644
index 0000000..04e4743
--- /dev/null
+++ b/xos/synchronizer/veg_from_api_config
@@ -0,0 +1,20 @@
+# Sets options for the synchronizer
+[observer]
+name=veg
+dependency_graph=/opt/xos/synchronizers/veg/model-deps
+steps_dir=/opt/xos/synchronizers/veg/steps
+sys_dir=/opt/xos/synchronizers/veg/sys
+#logfile=/var/log/xos_backend.log
+log_file=console
+log_level=debug
+pretend=False
+backoff_disabled=True
+save_ansible_output=True
+proxy_ssh=True
+proxy_ssh_key=/opt/cord_profile/node_key
+proxy_ssh_user=root
+accessor_kind=api
+accessor_password=@/opt/xos/services/veg/credentials/xosadmin@opencord.org
+
+[networking]
+use_vtn=True
\ No newline at end of file
diff --git a/xos/synchronizer/veg_stats_notifier.py b/xos/synchronizer/veg_stats_notifier.py
index a380b58..6e0d8ca 100644
--- a/xos/synchronizer/veg_stats_notifier.py
+++ b/xos/synchronizer/veg_stats_notifier.py
@@ -138,13 +138,13 @@
 rabbit_password='80608318c273f348a7c3'
 rabbit_host='10.11.10.1'
 vegservice_rabbit_exchange='vegservice'
-cpe_publisher_id='veg_publisher'
+veg_publisher_id='veg_publisher'
 
 producer = None
 
 def setup_rabbit_mq_channel():
      global producer
-     global rabbit_user, rabbit_password, rabbit_host, vegservice_rabbit_exchange,cpe_publisher_id
+     global rabbit_user, rabbit_password, rabbit_host, vegservice_rabbit_exchange,veg_publisher_id
      vegservice_exchange = Exchange(vegservice_rabbit_exchange, "topic", durable=False)
      # connections/channels
      connection = BrokerConnection(rabbit_host, rabbit_user, rabbit_password)
@@ -154,23 +154,23 @@
      producer = Producer(channel, exchange=vegservice_exchange, routing_key='notifications.info')
      p = subprocess.Popen('hostname', shell=True, stdout=subprocess.PIPE)
      (hostname, error) = p.communicate()
-     cpe_publisher_id = cpe_publisher_id + '_on_' + hostname
-     logger.info('cpe_publisher_id=%s',cpe_publisher_id)
+     veg_publisher_id = veg_publisher_id + '_on_' + hostname
+     logger.info('veg_publisher_id=%s',veg_publisher_id)
 
-def publish_cpe_stats():
+def publish_veg_stats():
      global producer
-     global keystone_tenant_id, keystone_user_id, cpe_publisher_id
+     global keystone_tenant_id, keystone_user_id, veg_publisher_id
 
-     logger.debug('publish_cpe_stats invoked')
+     logger.debug('publish_veg_stats invoked')
 
      dockercontainers = get_all_docker_containers()
-     cpe_container_compute_stats = extract_compute_stats_from_all_vegs(dockercontainers)
-     cpe_container_dns_stats = extract_dns_stats_from_all_vegs(dockercontainers)
+     veg_container_compute_stats = extract_compute_stats_from_all_vegs(dockercontainers)
+     veg_container_dns_stats = extract_dns_stats_from_all_vegs(dockercontainers)
 
-     for k,v in cpe_container_dns_stats.iteritems():
+     for k,v in veg_container_dns_stats.iteritems():
           msg = {'event_type': 'veg',
                  'message_id':six.text_type(uuid.uuid4()),
-                 'publisher_id': cpe_publisher_id,
+                 'publisher_id': veg_publisher_id,
                  'timestamp':datetime.datetime.now().isoformat(),
                  'priority':'INFO',
                  'payload': {'veg_id':k,
@@ -196,7 +196,7 @@
                compute_payload['tenant_id'] = keystone_tenant_id
                msg = {'event_type': 'veg.compute.stats',
                       'message_id':six.text_type(uuid.uuid4()),
-                      'publisher_id': cpe_publisher_id,
+                      'publisher_id': veg_publisher_id,
                       'timestamp':datetime.datetime.now().isoformat(),
                       'priority':'INFO',
                       'payload': compute_payload 
@@ -207,7 +207,7 @@
           if 'cache_size' in v:
                msg = {'event_type': 'veg.dns.cache.size',
                       'message_id':six.text_type(uuid.uuid4()),
-                      'publisher_id': cpe_publisher_id,
+                      'publisher_id': veg_publisher_id,
                       'timestamp':datetime.datetime.now().isoformat(),
                       'priority':'INFO',
                       'payload': {'veg_id':k,
@@ -222,7 +222,7 @@
           if 'total_inserted_entries' in v:
                msg = {'event_type': 'veg.dns.total_inserted_entries',
                       'message_id':six.text_type(uuid.uuid4()),
-                      'publisher_id': cpe_publisher_id,
+                      'publisher_id': veg_publisher_id,
                       'timestamp':datetime.datetime.now().isoformat(),
                       'priority':'INFO',
                       'payload': {'veg_id':k,
@@ -237,7 +237,7 @@
           if 'replaced_unexpired_entries' in v:
                msg = {'event_type': 'veg.dns.replaced_unexpired_entries',
                       'message_id':six.text_type(uuid.uuid4()),
-                      'publisher_id': cpe_publisher_id,
+                      'publisher_id': veg_publisher_id,
                       'timestamp':datetime.datetime.now().isoformat(),
                       'priority':'INFO',
                       'payload': {'veg_id':k,
@@ -252,7 +252,7 @@
           if 'queries_forwarded' in v:
                msg = {'event_type': 'veg.dns.queries_forwarded',
                       'message_id':six.text_type(uuid.uuid4()),
-                      'publisher_id': cpe_publisher_id,
+                      'publisher_id': veg_publisher_id,
                       'timestamp':datetime.datetime.now().isoformat(),
                       'priority':'INFO',
                       'payload': {'veg_id':k,
@@ -267,7 +267,7 @@
           if 'queries_answered_locally' in v:
                msg = {'event_type': 'veg.dns.queries_answered_locally',
                       'message_id':six.text_type(uuid.uuid4()),
-                      'publisher_id': cpe_publisher_id,
+                      'publisher_id': veg_publisher_id,
                       'timestamp':datetime.datetime.now().isoformat(),
                       'priority':'INFO',
                       'payload': {'veg_id':k,
@@ -283,7 +283,7 @@
                for server in v['server_stats']:
                    msg = {'event_type': 'veg.dns.server.queries_sent',
                           'message_id':six.text_type(uuid.uuid4()),
-                          'publisher_id': cpe_publisher_id,
+                          'publisher_id': veg_publisher_id,
                           'timestamp':datetime.datetime.now().isoformat(),
                           'priority':'INFO',
                           'payload': {'veg_id':k,
@@ -298,7 +298,7 @@
 
                    msg = {'event_type': 'veg.dns.server.queries_failed',
                           'message_id':six.text_type(uuid.uuid4()),
-                          'publisher_id': cpe_publisher_id,
+                          'publisher_id': veg_publisher_id,
                           'timestamp':datetime.datetime.now().isoformat(),
                           'priority':'INFO',
                           'payload': {'veg_id':k,
@@ -312,7 +312,7 @@
                    logger.debug('Publishing veg.dns.server.queries_failed event: %s', msg)
 
 def periodic_publish():
-     publish_cpe_stats()
+     publish_veg_stats()
      #Publish every 5minutes
      threading.Timer(300, periodic_publish).start()
 
diff --git a/xos/synchronizer/veg_synchronizer_config b/xos/synchronizer/veg_synchronizer_config
index 0e346ef..503d8e6 100644
--- a/xos/synchronizer/veg_synchronizer_config
+++ b/xos/synchronizer/veg_synchronizer_config
@@ -7,7 +7,7 @@
 name=xos
 user=postgres
 password=password
-host=localhost
+host=xos_db
 port=5432
 
 [api]
@@ -34,10 +34,15 @@
 backoff_disabled=True
 save_ansible_output=True
 # set proxy_ssh to false on cloudlab
-proxy_ssh=False
 full_setup=True
+proxy_ssh=True
+proxy_ssh_key=/opt/cord_profile/node_key
+proxy_ssh_user=root
 enable_watchers=True
 
+[networking]
+use_vtn=True
+
 [feefie]
 client_id='vicci_dev_central'
 user_id='pl'
diff --git a/xos/synchronizer/vtn_veg_synchronizer_config b/xos/synchronizer/vtn_veg_synchronizer_config
deleted file mode 100644
index 420006d..0000000
--- a/xos/synchronizer/vtn_veg_synchronizer_config
+++ /dev/null
@@ -1,47 +0,0 @@
-
-[plc]
-name=plc
-deployment=VICCI
-
-[db]
-name=xos
-user=postgres
-password=password
-host=localhost
-port=5432
-
-[api]
-host=128.112.171.237
-port=8000
-ssl_key=None
-ssl_cert=None
-ca_ssl_cert=None
-ratelimit_enabled=0
-omf_enabled=0
-mail_support_address=support@localhost
-nova_enabled=True
-
-[observer]
-name=veg
-dependency_graph=/opt/xos/synchronizers/veg/model-deps
-steps_dir=/opt/xos/synchronizers/veg/steps
-sys_dir=/opt/xos/synchronizers/veg/sys
-deleters_dir=/opt/xos/synchronizers/veg/deleters
-log_file=console
-#/var/log/hpc.log
-driver=None
-pretend=False
-backoff_disabled=True
-save_ansible_output=True
-# set proxy_ssh to false on cloudlab
-full_setup=True
-proxy_ssh=True
-proxy_ssh_key=/opt/xos/synchronizers/veg/node_key
-proxy_ssh_user=root
-
-[networking]
-use_vtn=True
-
-[feefie]
-client_id='vicci_dev_central'
-user_id='pl'
