diff --git a/CHANGES.rst b/CHANGES.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c244158224de0bb9cb32492fd764db83aab24557
--- /dev/null
+++ b/CHANGES.rst
@@ -0,0 +1,7 @@
+FORCE BDSS Changelog
+--------------------
+
+Release 0.1.0
+-------------
+
+- Initial release. Implements basic functionality of the BDSS and its plugin system.
diff --git a/README.rst b/README.rst
index 9e54ffd5a15772ce5d53d533ca949eedefdbde13..c011297942b43abdf9718caca0432da7c30017d7 100644
--- a/README.rst
+++ b/README.rst
@@ -1,5 +1,6 @@
 FORCE BDSS
 ----------
 
-This repository contains the implementation of the Business Decision System. It is implemented
-under the FORCE project (Horizon 2020/NMBP-23-2016/721027).
+This repository contains the implementation of the Business Decision System. 
+It is implemented under the FORCE project (Horizon 2020/NMBP-23-2016/721027).
+
diff --git a/setup.py b/setup.py
index 98309fea96f60e657927d47f03738ff2d052db01..a459f65f90103a4864d8aa3282a863af2018ace1 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 import os
 from setuptools import setup, find_packages
 
-VERSION = "0.1.0.dev2"
+VERSION = "0.1.0"
 
 
 # Read description
diff --git a/utils/zmq_ui_server.py b/utils/zmq_ui_server.py
deleted file mode 100644
index d249f506cedce8e7112ba3bb52d95246842170bf..0000000000000000000000000000000000000000
--- a/utils/zmq_ui_server.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import zmq
-
-# Socket to talk to server
-context = zmq.Context()
-sub_socket = context.socket(zmq.SUB)
-sub_socket.bind("tcp://*:12345")
-sub_socket.setsockopt(zmq.SUBSCRIBE, "".encode("utf-8"))
-sub_socket.setsockopt(zmq.LINGER, 0)
-
-sync_socket = context.socket(zmq.REP)
-sync_socket.setsockopt(zmq.LINGER, 0)
-sync_socket.bind("tcp://*:12346")
-
-poller = zmq.Poller()
-poller.register(sub_socket)
-poller.register(sync_socket)
-
-WAITING = 0
-RECEIVING = 1
-
-state = WAITING
-
-while True:
-    events = dict(poller.poll())
-    if sync_socket in events:
-        data = sync_socket.recv_string()
-        print("received ", data)
-        if data.startswith("HELLO\n"):
-            sync_socket.send_string(data)
-            state = RECEIVING
-        elif data.startswith("GOODBYE\n"):
-            sync_socket.send_string(data)
-            state = WAITING
-        else:
-            print("unknown request", data)
-
-    if sub_socket in events:
-        if state == RECEIVING:
-            string = sub_socket.recv_string()
-            split_data = string.split("\n")
-            print(split_data)
-        else:
-            print("data while waiting. discarding")
-            string = sub_socket.recv_string()