diff --git a/web_app/__init__.py b/web_app/__init__.py
index 4936888..7e2bc88 100644
--- a/web_app/__init__.py
+++ b/web_app/__init__.py
@@ -72,7 +72,7 @@
     for build in collect_builds():
         d = {}
         d["type"] = build['type']
-        d["url"] = url_for("render_test", test_name=build['type'])
+        d["url"] = url_for("render_test", test_name=build['name'])
         d["date"] = build['date']
         d["name"] = build['name']
         data.append(d)
@@ -164,23 +164,25 @@
     tests = []
     header_keys = ['build_id', 'iso_md5', 'type', 'date']
     table = [[]]
-
-    if test_name == 'GA':
-        builds_to_compare = ['GA']
-    else:
-        builds_to_compare = ['GA', 'master', test_name]
-
     builds = collect_builds()
+
+    l = filter(lambda x: x['name'] == test_name, builds)
+
+    if l[0]['type'] == 'GA':
+        builds = filter(lambda x: x['type'] == 'GA', builds)
+    else:
+        l.extend(filter(lambda x: x['type'] in ['GA', 'master'] and x not in l, builds))
+        builds = l
+
     results = {}
     meta = {"__meta__": "http://172.16.52.112:8000/api/nodes"}
     data = collect_lab_data(meta)
     lab_meta = total_lab_info(data)
 
     for build in builds:
-        if build['type'] in builds_to_compare:
-            type = build['type']
-            m = create_measurement(build)
-            results[type] = m
+        type = build['type']
+        m = create_measurement(build)
+        results[type] = m
 
     bars = build_vertical_bar(results)
     lines = build_lines_chart(results)
diff --git a/web_app/templates/index.html b/web_app/templates/index.html
index 42df1a1..8098112 100644
--- a/web_app/templates/index.html
+++ b/web_app/templates/index.html
@@ -16,10 +16,10 @@
             {% for test in tests %}
             <tr>
                 <td>
-                      <a href="{{ test.url }} ">{{ test.type }}</a>
+                      {{ test.type }}
                 </td>
                 <td>
-                      {{ test.name }}
+                      <a href="{{ test.url }} ">{{ test.name }}</a>
                 </td>
                 <td>
                       {{ test.date }}
