diff --git a/xos/synchronizer/Makefile b/xos/synchronizer/Makefile
deleted file mode 100755
index 1c0258d..0000000
--- a/xos/synchronizer/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-synchronizer:
-	sudo docker build --rm -f Dockerfile.synchronizer -t xosproject/vnaas-synchronizer .
-
-up:
-	docker-compose -p vnaas up -d
\ No newline at end of file
diff --git a/xos/synchronizer/docker-compose.yml b/xos/synchronizer/docker-compose.yml
deleted file mode 100755
index d24b7b6..0000000
--- a/xos/synchronizer/docker-compose.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-version: '2'
-
-networks:
-  xos:
-    external: true
-
-services:
-  synchronizer:
-    image: xosproject/vnaas-synchronizer
-    networks:
-      - xos
-    #command: bash -c "sleep 86400"
-    volumes:
-        - /opt/cord_profile/node_key:/opt/cord_profile/node_key:ro
-        - /opt/cord/build/platform-install/credentials/xosadmin@opencord.org:/opt/xos/services/vnaas/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/run_devel.sh b/xos/synchronizer/run_devel.sh
deleted file mode 100755
index bbdf1b6..0000000
--- a/xos/synchronizer/run_devel.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-export XOS_DIR=/opt/xos
-python vnaas-synchronizer-devel.py  -C $XOS_DIR/synchronizers/vnaas/vnaas_synchronizer_config
diff --git a/xos/synchronizer/steps/sync_vnaaseline.py b/xos/synchronizer/steps/sync_vnaaseline.py
old mode 100755
new mode 100644
index 93fd40e..53edc10
--- a/xos/synchronizer/steps/sync_vnaaseline.py
+++ b/xos/synchronizer/steps/sync_vnaaseline.py
@@ -20,10 +20,10 @@
 import json
 from synchronizers.new_base.syncstep import SyncStep
 from synchronizers.new_base.modelaccessor import *
-#from xos.logger import Logger, logging
+from xos.logger import Logger, logging
 
 from requests.auth import HTTPBasicAuth
-#logger = Logger(level=logging.INFO)
+logger = Logger(level=logging.INFO)
 
 parentdir = os.path.join(os.path.dirname(__file__), "..")
 sys.path.insert(0, parentdir)
@@ -52,8 +52,9 @@
         return HTTPBasicAuth(onos.onos_username, onos.onos_password)
 
     def sync_record(self, evc):
-        print "POST %s " % (evc)
-        #logger.info("Syncing Edited EVC: %s" % evc.name)
+        logger.info("Syncing Edited EVC: %s" % evc.name)
+        logger.info("POST %s " % (evc))
+
         # Fetch the bwp from the DB
         bwp = BandwidthProfile.objects.get(name=evc.bwp)
 
@@ -83,7 +84,7 @@
         data["ebs"] = bwp.ebs
         data["cir"] = bwp.cir
         data["eir"] = bwp.eir
-        print "data %s" % data
+        logger.info("data %s" % data)
         # assuming that the CPEs are controller by the fabric ONOS
         onos = OnosModel.objects.get(onos_type="global")
         onos_addr = self.get_onos_global_addr(onos)
@@ -91,15 +92,14 @@
         # FIXME - hardcoded auth
         auth = self.get_onos_global_auth(onos)
 
-        print "POST %s for app %s, data = %s" % (onos_addr, evc.name, data)
+        logger.info("POST %s for app %s, data = %s" % (onos_addr, evc.name, data))
 
         r = requests.post(onos_addr, data=json.dumps(data), auth=auth)
         #TODO XOS might fail to connect to ONOS.
         if (r.status_code != 200):
-            print r
+            logger.info("result = %s" % r)
             raise Exception("Received error from EVC Installation update (%d)" % r.status_code)
 
     def delete_record(self, evc):
         # TODO evaluate what to in this case.
-        print "Syncing delete EVC: %s" % evc.name
-        #logger.info("Syncing delete EVC: %s" % evc.name)
+        logger.info("Syncing delete EVC: %s" % evc.name)
