diff --git a/.testr.conf b/.testr.conf
deleted file mode 100644
index 523e7db..0000000
--- a/.testr.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2017 Intel Research and Development Ireland Limited
-# *************************************************************
-
-# This file is part of OSM Monitoring module
-# All Rights Reserved to Intel Corporation
-
-# 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.
-
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: helena.mcgough@intel.com or adrian.hoban@intel.com
-##
-[DEFAULT]
-test_command=python -m subunit.run discover . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff --git a/kafkad b/kafkad
deleted file mode 100644
index 59848f6..0000000
--- a/kafkad
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# Copyright 2017 Intel Research and Development Ireland Limited
-# *************************************************************
-
-# This file is part of OSM Monitoring module
-# All Rights Reserved to Intel Corporation
-
-# 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.
-
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
-
-#__author__ = "Prithiv Mohan"
-#__date__   = "25/Sep/2017"
-
-import os
-import subprocess
-import urllib
-packages = ['default-jre', 'python-all']
-for package in packages:
-    subprocess.call(['apt-get', 'install', '--yes', package])
-urllib.urlretrieve("http://www-eu.apache.org/dist/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz", filename="kafka.tgz")
-os.popen("mkdir /opt/kafka && tar -xf /root/kafka.tgz -C /opt/kafka --strip-components 1")
-os.popen("sed -i 's|zookeeper.connect=localhost:2181|zookeeper.connect=SO-ub.lxd:2181 |g' /opt/kafka/config/server.properties")
-os.popen("/opt/kafka/bin/kafka-server-start.sh kafka/config/server.properties &")
diff --git a/osm_mon/plugins/CloudWatch/.gitkeep b/osm_mon/plugins/CloudWatch/.gitkeep
deleted file mode 100644
index 2272ebb..0000000
--- a/osm_mon/plugins/CloudWatch/.gitkeep
+++ /dev/null
@@ -1 +0,0 @@
-#gitkeep file to keep the initial empty directory structure.
diff --git a/osm_mon/plugins/OpenStack/Gnocchi/.gitkeep b/osm_mon/plugins/OpenStack/Gnocchi/.gitkeep
deleted file mode 100644
index 2272ebb..0000000
--- a/osm_mon/plugins/OpenStack/Gnocchi/.gitkeep
+++ /dev/null
@@ -1 +0,0 @@
-#gitkeep file to keep the initial empty directory structure.
diff --git a/osm_mon/plugins/vRealiseOps/.gitkeep b/osm_mon/plugins/vRealiseOps/.gitkeep
deleted file mode 100644
index 2272ebb..0000000
--- a/osm_mon/plugins/vRealiseOps/.gitkeep
+++ /dev/null
@@ -1 +0,0 @@
-#gitkeep file to keep the initial empty directory structure.
diff --git a/osm_mon/test/OpenStack/__init__.py b/osm_mon/test/OpenStack/__init__.py
index 861627f..32eb94e 100644
--- a/osm_mon/test/OpenStack/__init__.py
+++ b/osm_mon/test/OpenStack/__init__.py
@@ -19,13 +19,3 @@
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: helena.mcgough@intel.com or adrian.hoban@intel.com
 ##
-"""OpenStack plugin tests."""
-
-import logging
-
-# Initialise a logger for tests
-logging.basicConfig(filename='OpenStack_tests.log',
-                    format='%(asctime)s %(message)s',
-                    datefmt='%m/%d/%Y %I:%M:%S %p', filemode='a',
-                    level=logging.INFO)
-log = logging.getLogger(__name__)
diff --git a/scripts/install_mon.sh b/scripts/install_mon.sh
deleted file mode 100644
index f78dd6a..0000000
--- a/scripts/install_mon.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Intel Research and Development Ireland Limited
-# *************************************************************
-
-# This file is part of OSM Monitoring module
-# All Rights Reserved to Intel Corporation
-
-# 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 limitation
-
-# under the License.
-
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
-
-#__author__ = "Prithiv Mohan"
-#__date__   = "13/Oct/2017"
-
-#This is a temporary installation script for the MON Module. From the next
-#point release, MON will be a part of the OSM Module and can be installed
-#through the install_osm.sh script, just like any other modules.
-
-lxc launch ubuntu:16.04 MON
-lxc exec MON -- apt-get --yes update
-lxc exec MON -- apt-get --yes install git python python-pip libmysqlclient-dev
-lxc exec MON -- git clone https://osm.etsi.org/gerrit/osm/MON.git
-lxc exec MON -- pip install -r /root/MON/requirements.txt
-lxc exec MON -- python /root/MON/kafkad
-lxc exec MON -- /bin/bash /root/MON/scripts/kafka.sh
-lxc exec MON -- /bin/bash /root/MON/osm_mon/plugins/vRealiseOps/vROPs_Webservice/install.sh
diff --git a/scripts/kafka.sh b/scripts/kafka.sh
deleted file mode 100644
index fcdde67..0000000
--- a/scripts/kafka.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2017 Intel Research and Development Ireland Limited
-# *************************************************************
-
-# This file is part of OSM Monitoring module
-# All Rights Reserved to Intel Corporation
-
-# 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.
-
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
-
-mkdir -p /etc/systemd/system/
-cat  > /etc/systemd/system/kafka.service  << EOF
-[Unit]
-Description=Apache Kafka server (broker)
-Documentation=http://kafka.apache.org/documentation.html
-Requires=network.target remote-fs.target
-After=network.target remote-fs.target
-
-[Service]
-Type=simple
-PIDFile=/var/run/kafka.pid
-#User=root
-#Group=kafka
-ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
-ExecStop=/opt/kafka/bin/kafka-server-stop.sh
-Restart=on-failure
-SyslogIdentifier=kafka
-
-[Install]
-WantedBy=multi-user.target
-EOF
-systemctl daemon-reload
-systemctl enable kafka.service
-systemctl start kafka.service
diff --git a/tools/pretty_tox.sh b/tools/pretty_tox.sh
deleted file mode 100644
index 3899b58..0000000
--- a/tools/pretty_tox.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2017 Intel Research and Development Ireland Limited
-# *************************************************************
-
-# This file is part of OSM Monitoring module
-# All Rights Reserved to Intel Corporation
-
-# 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.
-
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: helena.mcgough@intel.com or adrian.hoban@intel.com
-##
-
-#! /bin/sh
-
-TESTRARGS=$1
-
-exec 3>&1
-status=$(exec 4>&1 >&3; ( python setup.py testr --slowest --testr-args="--subunit $TESTRARGS"; echo $? >&4 ) | subunit-trace -f) && exit $status
-
