diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..52c10c3
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,80 @@
+# 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__   = "14/Sep/2017"
+
+SHELL := /bin/bash
+all: package install
+
+clean_deb:
+    rm -rf .build
+
+clean:
+    rm -rf build
+
+prepare:
+    pip install --upgrade setuptools
+    mkdir -p build/
+    VER1=$(shell git describe | sed -e 's/^v//' |cut -d- -f1); \
+    VER2=$(shell git describe | cut -d- -f2); \
+    VER3=$(shell git describe | cut -d- -f3); \
+    echo "$$VER1.dev$$VER2+$$VER3" > build/MON_VERSION
+    cp MANIFEST.in build/
+    cp requirements.txt build/
+    cp README.rst build/
+    cp -r core build/
+    cp -r plugins build/
+    cp -r devops_stages build/
+    cp -r test build/
+
+build: clean openstack_plugins prepare
+    python -m py_compile build/plugins/OpenStack/*.py
+
+build: clean vrops_plugins prepare
+    python -m py_compile build/plugins/vRealiseOps/*.py
+
+build clean cloudwatch_plugins prepare
+    python -m py_compile build/plugins/CloudWatch/*.py
+
+build clean core prepare
+    python -m py_compile build/core/message_bus/*.py
+
+pip: prepare
+    cd build ./setup.py sdist
+
+package: clean clean_deb prepare
+    apt-get --yes install python-software-properties \
+    python-pip \
+    python-stdeb
+    cd build && python setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True
+    mkdir -p build
+    cp build/deb_dist/python-*.deb .build/
+
+install:
+        DEBIAN_FRONTEND=noninteractive apt-get update && \
+        DEBIAN_FRONTEND=noninteractive apt-get install -y python-pip && \
+        pip install --upgrade pip && \
+        dpkg -i .build/*.deb
+
+develop: prepare
+    pip install -r requirements.txt
+    cd build && ./setup.py develop 
diff --git a/devops_stages/stage-build.sh b/devops_stages/stage-build.sh
new file mode 100644
index 0000000..bbe2b8a
--- /dev/null
+++ b/devops_stages/stage-build.sh
@@ -0,0 +1,26 @@
+# 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__   = "14/Sep/2017"
+
+#!/bin/bash
+make package
diff --git a/devops_stages/stage-test.sh b/devops_stages/stage-test.sh
new file mode 100644
index 0000000..c647565
--- /dev/null
+++ b/devops_stages/stage-test.sh
@@ -0,0 +1,26 @@
+# 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__   = "14/Sep/2017"
+
+#!/bin/bash
+echo "UNITTEST"
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..4050dd6
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,81 @@
+# 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__   = "14/Sep/2017"
+
+#!/usr/bin/env python
+
+from setuptools import setup
+from os import system
+
+_name = 'mon'
+_version = '1.0'
+_description = 'OSM Monitoring Module'
+_author = 'Prithiv Mohan'
+_author_email = 'prithiv.mohan@intel.com'
+_maintainer = 'Adrian Hoban'
+_maintainer_email = 'adrian.hoban@intel.com'
+_license = 'Apache 2.0'
+_copyright = 'Intel Research and Development Ireland'
+_url = 'https://osm.etsi.org/gitweb/?p=osm/MON.git;a=tree'
+_requirements = [
+    "MySQL-python",
+    "requests",
+    "loguitls",
+    "cherrypy",
+    "jsmin",
+    "jsonschema",
+    "python-openstackclient",
+    "python-novaclient",
+    "python-keystoneclient",
+    "python-neutronclient",
+    "python-aodhclient",
+    "python-gnocchi client",
+    "boto==2.8",
+    "python-cloudwatchlogs-logging",
+    "py-cloudwatch",
+    "pyvcloud",
+    "pyopenssl",
+    "python-requests",
+    "cherrypy",
+    "python-bottle",
+]
+
+setup(name=_name,
+      version = _version,
+      description = _description,
+      long_description = open('README.rst').read(),
+      author = _author,
+      author_email = _author_email,
+      maintainer = _maintainer,
+      maintainer_email = _maintainer_email,
+      url = _url,
+      license = _license,
+      copyright = _copyright,
+      packages = [_name],
+      package_dir = {_name: _name},
+      package_data = {_name: ['core/message_bus/*.py', 'core/models/*.json',
+                      'plugins/OpenStack/Aodh/*.py', 'plugins/OpenStack/Gnocchi/*.py',
+                      'plugins/vRealiseOps/*', 'plugins/CloudWatch/*']},
+      install_requires = _requirements,
+      include_package_data=True,
+      )
