diff --git a/rest_api.py b/rest_api.py
index 7bff6c8..c55e018 100644
--- a/rest_api.py
+++ b/rest_api.py
@@ -4,14 +4,16 @@
 
 def add_test(test_name, test_data, url):
     if not url.endswith("/"):
-        url += '/' + test_name
+        url += '/api/tests/' + test_name
 
+    import pdb
+    pdb.set_trace()
     requests.post(url=url, data=json.dumps(test_data))
 
 
 def get_test(test_name, url):
     if not url.endswith("/"):
-        url += '/' + test_name
+        url += '/api/tests/' + test_name
 
     result = requests.get(url=url)
 
@@ -19,6 +21,9 @@
 
 
 def get_all_tests(url):
+    if not url.endswith('/'):
+        url += '/api/tests'
+
     result = requests.get(url=url)
     return json.loads(result.content)
 
diff --git a/run_test.py b/run_test.py
index ad0c9d2..a5381ae 100644
--- a/run_test.py
+++ b/run_test.py
@@ -10,6 +10,7 @@
 
 import io_scenario
 from itest import IOPerfTest
+from rest_api import add_test
 
 import ssh_runner
 
@@ -75,6 +76,15 @@
     parser.add_argument("--max-preparation-time", default=300,
                         type=int, dest="max_preparation_time")
 
+    parser.add_argument("-b", "--build-info", default=None,
+                        dest="build_name")
+
+    parser.add_argument("-d", "--data-server-url", default=None,
+                        dest="data_server_url")
+
+    parser.add_argument("-n", "--lab-name", default=None,
+                        dest="lab_name")
+
     parser.add_argument("-k", "--keep", default=False,
                         help="keep temporary files",
                         dest="keep_temp_files", action='store_true')
@@ -123,7 +133,7 @@
 
         data = json.dumps({key: (int(bw_mean), int(bw_dev))})
 
-        return "\n====> {0}\n\n{1}\n".format(data, "=" * 80)
+        return data
 
 
 def get_io_opts(io_opts_file, io_opts):
@@ -165,7 +175,7 @@
     data = "\n{0}\n".format("=" * 80)
     data += pprint.pformat(res) + "\n"
     data += "{0}\n".format("=" * 80)
-    return data + "\n" + format_measurements_stat(res) + "\n"
+    return data + "\n" + "\n====> {0}\n\n{1}\n".format(format_measurements_stat(res), "=" * 80) + "\n"
 
 
 def main(argv):
@@ -176,6 +186,9 @@
             pass
 
     io_opts = get_io_opts(opts.io_opts_file, opts.io_opts)
+    data_server_url = opts.data_server_url
+    lab_name = opts.lab_name
+    build_name = opts.build_name
 
     if opts.runner == "rally":
         logger.debug("Use rally runner")
@@ -256,6 +269,9 @@
             logger.debug("Clearing")
             clear_all(nova)
 
+    result = json.loads(format_measurements_stat(res))
+    result['name'] = build_name
+    add_test(build_name, result, data_server_url)
     return 0
 
 
diff --git a/run_tests.py b/run_tests.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/run_tests.py
diff --git a/web_app/__init__.py b/web_app/__init__.py
index 9fd6a17..00c1084 100644
--- a/web_app/__init__.py
+++ b/web_app/__init__.py
@@ -3,7 +3,7 @@
 from flask_bootstrap import Bootstrap
 from config import TEST_PATH
 from report import build_vertical_bar, build_lines_chart
-from storage_api import create_storage, Measurement
+from storage_api import Measurement
 from logging import getLogger, INFO
 
 import json
@@ -157,7 +157,10 @@
     d = {}
 
     for pair in b2.items():
-        b1[pair[0]] = pair[1]
+        if pair[0] in b1 and type(pair[1]) is list:
+            b1[pair[0]].extend(pair[1])
+        else:
+            b1[pair[0]] = pair[1]
 
 
 @app.route("/", methods=['GET', 'POST'])
