diff --git a/xos/synchronizer/Dockerfile.synchronizer b/xos/synchronizer/Dockerfile.synchronizer
deleted file mode 100644
index 860576a..0000000
--- a/xos/synchronizer/Dockerfile.synchronizer
+++ /dev/null
@@ -1,53 +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.
-
-# xosproject/sdncontroller-synchronizer
-FROM xosproject/xos-synchronizer-base:candidate
-
-COPY . /opt/xos/synchronizers/sdncontroller
-
-ENTRYPOINT []
-
-WORKDIR "/opt/xos/synchronizers/sdncontroller"
-
-# Label image
-ARG org_label_schema_schema_version=1.0
-ARG org_label_schema_name=sdncontroller-synchronizer
-ARG org_label_schema_version=unknown
-ARG org_label_schema_vcs_url=unknown
-ARG org_label_schema_vcs_ref=unknown
-ARG org_label_schema_build_date=unknown
-ARG org_opencord_vcs_commit_date=unknown
-ARG org_opencord_component_chameleon_version=unknown
-ARG org_opencord_component_chameleon_vcs_url=unknown
-ARG org_opencord_component_chameleon_vcs_ref=unknown
-ARG org_opencord_component_xos_version=unknown
-ARG org_opencord_component_xos_vcs_url=unknown
-ARG org_opencord_component_xos_vcs_ref=unknown
-
-LABEL org.label-schema.schema-version=$org_label_schema_schema_version \
-      org.label-schema.name=$org_label_schema_name \
-      org.label-schema.version=$org_label_schema_version \
-      org.label-schema.vcs-url=$org_label_schema_vcs_url \
-      org.label-schema.vcs-ref=$org_label_schema_vcs_ref \
-      org.label-schema.build-date=$org_label_schema_build_date \
-      org.opencord.vcs-commit-date=$org_opencord_vcs_commit_date \
-      org.opencord.component.chameleon.version=$org_opencord_component_chameleon_version \
-      org.opencord.component.chameleon.vcs-url=$org_opencord_component_chameleon_vcs_url \
-      org.opencord.component.chameleon.vcs-ref=$org_opencord_component_chameleon_vcs_ref \
-      org.opencord.component.xos.version=$org_opencord_component_xos_version \
-      org.opencord.component.xos.vcs-url=$org_opencord_component_xos_vcs_url \
-      org.opencord.component.xos.vcs-ref=$org_opencord_component_xos_vcs_ref
-
-CMD bash -c "service filebeat start; cd /opt/xos/synchronizers/sdncontroller; ./run-from-api.sh"
diff --git a/xos/synchronizer/sdncontroller_config.yaml b/xos/synchronizer/config.yaml
similarity index 83%
rename from xos/synchronizer/sdncontroller_config.yaml
rename to xos/synchronizer/config.yaml
index 5d64988..2d71116 100644
--- a/xos/synchronizer/sdncontroller_config.yaml
+++ b/xos/synchronizer/config.yaml
@@ -14,15 +14,21 @@
 
 
 name: sdncontroller
-accessor:
-  username: xosadmin@opencord.org
-  password: "@/opt/xos/services/sdncontroller/credentials/xosadmin@opencord.org"
 required_models:
   - SDNControllerService
   - SDNControllerVendor
   - SDNControllerServiceInstance
-dependency_graph: "/opt/xos/synchronizers/sdncontroller/model-deps"
 steps_dir: "/opt/xos/synchronizers/sdncontroller/steps"
 sys_dir: "/opt/xos/synchronizers/sdncontroller/sys"
-models_dir: "/opt/xos/synchronizers/sdncontroller/models"
 model_policies_dir: "/opt/xos/synchronizers/sdncontroller/model_policies"
+models_dir: "/opt/xos/synchronizers/sdncontroller/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+      level: DEBUG
diff --git a/xos/synchronizer/model-deps b/xos/synchronizer/model-deps
deleted file mode 100644
index 9e26dfe..0000000
--- a/xos/synchronizer/model-deps
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/xos/synchronizer/run-from-api.sh b/xos/synchronizer/run-from-api.sh
deleted file mode 100755
index 1a40e6d..0000000
--- a/xos/synchronizer/run-from-api.sh
+++ /dev/null
@@ -1,16 +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.
-
-
-python sdncontroller-synchronizer.py
\ No newline at end of file
diff --git a/xos/synchronizer/sdncontroller-synchronizer.py b/xos/synchronizer/sdncontroller-synchronizer.py
index 9982715..2c40aeb 100644
--- a/xos/synchronizer/sdncontroller-synchronizer.py
+++ b/xos/synchronizer/sdncontroller-synchronizer.py
@@ -19,13 +19,17 @@
 import importlib
 import os
 import sys
-
 from xosconfig import Config
-config_file = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + '/sdncontroller_config.yaml')
 
-Config.init(config_file, 'synchronizer-config-schema.yaml')
+base_config_file = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + '/config.yaml')
+mounted_config_file = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + '/mounted_config.yaml')
+
+if os.path.isfile(mounted_config_file):
+    Config.init(base_config_file, 'synchronizer-config-schema.yaml', mounted_config_file)
+else:
+    Config.init(base_config_file, 'synchronizer-config-schema.yaml')
+
 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()
