diff --git a/xos/synchronizer/steps/.gitignore b/xos/synchronizer/steps/.gitignore
deleted file mode 100644
index c96a04f..0000000
--- a/xos/synchronizer/steps/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
\ No newline at end of file
diff --git a/xos/synchronizer/steps/helpers.py b/xos/synchronizer/steps/helpers.py
new file mode 100644
index 0000000..5a3eda9
--- /dev/null
+++ b/xos/synchronizer/steps/helpers.py
@@ -0,0 +1,29 @@
+# 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.
+
+from synchronizers.new_base.modelaccessor import Service
+
+class Helpers():
+    @staticmethod
+    def format_url(url):
+        if 'http' in url:
+            return url
+        else:
+            return 'http://%s' % url
+    @staticmethod
+    def get_onos_fabric_service():
+        fabric_service = Service.objects.get(name="fabric") # TODO understand why FabricService.leaf_model is still FabricService and not service
+        onos_fabric_service = fabric_service.subscriber_services[0].leaf_model
+
+        return onos_fabric_service
\ No newline at end of file
