diff --git a/.gitignore b/.gitignore
index 485dee6..0036f8d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
 .idea
+nose2-junit.xml
+.coverage
diff --git a/VERSION b/VERSION
index 227cea2..a69e585 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.0.0
+2.0.1.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 48ea867..834b6af 100644
--- a/xos/unittest.cfg
+++ b/xos/unittest.cfg
@@ -1,4 +1,4 @@
 [unittest]
-plugins=nose2-plugins.exclude
+plugins=nose2.plugins.junitxml
 code-directories=synchronizer
                  steps
