diff --git a/Dockerfile.synchronizer b/Dockerfile.synchronizer
index cb7c82a..7c9810f 100644
--- a/Dockerfile.synchronizer
+++ b/Dockerfile.synchronizer
@@ -51,4 +51,4 @@
       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 "cd /opt/xos/synchronizers/hssdb; ./run-from-api.sh"
\ No newline at end of file
+CMD ["/usr/bin/python", "/opt/xos/synchronizers/hssdb/hssdb-synchronizer.py"]
diff --git a/xos/synchronizer/Dockerfile.synchronizer b/xos/synchronizer/Dockerfile.synchronizer
deleted file mode 100644
index 66c99ce..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/hssdb-synchronizer
-FROM xosproject/xos-synchronizer-base:candidate
-
-COPY . /opt/xos/synchronizers/hssdb
-
-ENTRYPOINT []
-
-WORKDIR "/opt/xos/synchronizers/hssdb"
-
-# Label image
-ARG org_label_schema_schema_version=1.0
-ARG org_label_schema_name=hssdb-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 "cd /opt/xos/synchronizers/hssdb; ./run-from-api.sh"
\ No newline at end of file
diff --git a/xos/synchronizer/hssdb_config.yaml b/xos/synchronizer/config.yaml
similarity index 83%
rename from xos/synchronizer/hssdb_config.yaml
rename to xos/synchronizer/config.yaml
index 705d41d..ea34f87 100644
--- a/xos/synchronizer/hssdb_config.yaml
+++ b/xos/synchronizer/config.yaml
@@ -13,15 +13,21 @@
 # limitations under the License.
 
 name: hssdb
-accessor:
-  username: xosadmin@opencord.org
-  password: "@/opt/xos/services/hssdb/credentials/xosadmin@opencord.org"
 required_models:
   - HSSDBService
   - HSSDBVendor
   - HSSDBServiceInstance
-dependency_graph: "/opt/xos/synchronizers/hssdb/model-deps"
 steps_dir: "/opt/xos/synchronizers/hssdb/steps"
 sys_dir: "/opt/xos/synchronizers/hssdb/sys"
 models_dir: "/opt/xos/synchronizers/hssdb/models"
 model_policies_dir: "/opt/xos/synchronizers/hssdb/model_policies"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+      level: DEBUG
diff --git a/xos/synchronizer/hssdb-synchronizer.py b/xos/synchronizer/hssdb-synchronizer.py
index f98bd92..2c40aeb 100644
--- a/xos/synchronizer/hssdb-synchronizer.py
+++ b/xos/synchronizer/hssdb-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__)) + '/hssdb_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()
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 820eefa..0000000
--- a/xos/synchronizer/run-from-api.sh
+++ /dev/null
@@ -1,15 +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 hssdb-synchronizer.py
\ No newline at end of file
