diff --git a/.gitignore b/.gitignore
index 9f11b75..0f03cd1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,8 @@
-.idea/
+.idea
+*.pyc
+
+.coverage
+htmlcov
+coverage.xml
+nose2-junit.xml
+
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..6a14782
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+1.0.0.dev0
diff --git a/xos/nose2-plugins/__init__.py b/xos/nose2-plugins/__init__.py
deleted file mode 100644
index 42722a8..0000000
--- a/xos/nose2-plugins/__init__.py
+++ /dev/null
@@ -1,14 +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.
diff --git a/xos/nose2-plugins/exclude.py b/xos/nose2-plugins/exclude.py
deleted file mode 100644
index 241eadb..0000000
--- a/xos/nose2-plugins/exclude.py
+++ /dev/null
@@ -1,32 +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.
-
-import logging
-import os
-
-from nose2.events import Plugin
-
-log = logging.getLogger('nose2.plugins.excludeignoredfiles')
-
-class ExcludeIgnoredFiles(Plugin):
-    commandLineSwitch = (None, 'exclude-ignored-files', 'Exclude that which should be excluded')
-
-    def matchPath(self, event):
-        if event.path.endswith(".py"):
-            text = open(event.path, "r").read()
-            if "test_framework: ignore" in text.lower():
-                log.info("Ignoring %s" % event.path)
-                event.handled = True
-                return False
diff --git a/xos/unittest.cfg b/xos/unittest.cfg
index 71be7ca..2672bb6 100644
--- a/xos/unittest.cfg
+++ b/xos/unittest.cfg
@@ -1,5 +1,14 @@
 [unittest]
-plugins=nose2-plugins.exclude
+plugins=nose2.plugins.junitxml
 code-directories=synchronizer
                  model_policies
                  steps
+                 pull_steps
+
+[coverage]
+always-on = True
+coverage = synchronizer
+coverage-report = term
+coverage-report = html
+coverage-report = xml
+
