diff --git a/web/gui/src/main/webapp/app/common.css b/web/gui/src/main/webapp/app/common.css
index ac3fff4..ff727a3 100644
--- a/web/gui/src/main/webapp/app/common.css
+++ b/web/gui/src/main/webapp/app/common.css
@@ -80,6 +80,11 @@
     color: #ccc;
 }
 
+/* rows are selectable */
+table.summary-list td {
+    cursor: pointer;
+}
+
 .dark table.summary-list td {
     color: #ccc;
 }
diff --git a/web/gui/src/main/webapp/app/fw/svg/icon.css b/web/gui/src/main/webapp/app/fw/svg/icon.css
index 3e8c433..872c476 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.css
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.css
@@ -54,7 +54,7 @@
 /* color schemes for specific icon classes */
 
 svg.embeddedIcon .icon.appInactive .glyph {
-    fill: rgba(166, 166, 166, 0.52);
+    fill: none;
 }
 
 .light svg.embeddedIcon .icon.appActive .glyph {
diff --git a/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js b/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
index ae5f13b..a9330d1 100644
--- a/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
+++ b/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
@@ -34,7 +34,8 @@
         var handlers = {},
             root = o.tag + 's',
             req = o.tag + 'DataRequest',
-            resp = o.tag + 'DataResponse';
+            resp = o.tag + 'DataResponse',
+            onSel = fs.isF(o.selCb);
 
         o.self.tableData = [];
 
@@ -48,6 +49,13 @@
         }
         o.scope.sortCallback = sortCb;
 
+        function selCb(sel) {
+            o.scope.sel = (o.scope.sel === sel) ? null : sel;
+            onSel && onSel(o.scope.sel);
+        }
+        o.scope.selectCallback = selCb;
+
+
         handlers[resp] = respCb;
         wss.bindHandlers(handlers);
 
diff --git a/web/gui/src/main/webapp/app/view/app/app.css b/web/gui/src/main/webapp/app/view/app/app.css
index 9de3e17..481708d 100644
--- a/web/gui/src/main/webapp/app/view/app/app.css
+++ b/web/gui/src/main/webapp/app/view/app/app.css
@@ -37,21 +37,25 @@
     cursor: pointer;
 }
 
-.light div.ctrl-btns div svg.embeddedIcon g.icon use {
-    fill: white;
+.light .ctrl-btns g.icon use {
+    fill: #fff;
 }
-.dark div.ctrl-btns div svg.embeddedIcon g.icon use {
+.dark .ctrl-btns g.icon use {
     fill: #333;
 }
 
-.light div.ctrl-btns div svg.embeddedIcon g.icon rect {
-    fill: #dde;
+.light .ctrl-btns g.icon rect {
+    fill: #bbb;
 }
-.dark div.ctrl-btns div svg.embeddedIcon g.icon rect {
-    fill: #556;
+.dark .ctrl-btns g.icon rect {
+    fill: #444;
 }
 
-/* rows are selectable */
-table.summary-list td {
-    cursor: pointer;
+/* Inactive */
+.light .ctrl-btns .disabled g.icon rect {
+    fill: #eee;
 }
+.dark .ctrl-btns .disabled g.icon rect {
+    fill: #111;
+}
+
diff --git a/web/gui/src/main/webapp/app/view/app/app.html b/web/gui/src/main/webapp/app/view/app/app.html
index 380db5e..6627691 100644
--- a/web/gui/src/main/webapp/app/view/app/app.html
+++ b/web/gui/src/main/webapp/app/view/app/app.html
@@ -1,12 +1,12 @@
 <!-- app partial HTML -->
 <div id="ov-app">
     <div>
-        <h2>Applications ({{ctrl.appData.length}} total)</h2>
+        <h2>Applications ({{ctrl.tableData.length}} total)</h2>
         <div class="ctrl-btns">
             <div icon icon-size="36" icon-id="appPlus"></div>
-            <div icon icon-size="36" icon-id="appMinus"></div>
-            <div icon icon-size="36" icon-id="appPlay"></div>
-            <div icon icon-size="36" icon-id="appStop"></div>
+            <div icon icon-size="36" icon-id="appMinus" class="disabled"></div>
+            <div icon icon-size="36" icon-id="appPlay" class="disabled"></div>
+            <div icon icon-size="36" icon-id="appStop" class="disabled"></div>
         </div>
     </div>
     <table class="summary-list"
@@ -24,9 +24,9 @@
         </thead>
 
         <tbody>
-        <tr ng-repeat="app in ctrl.appData"
-            ng-click="setSelected(app.id)"
-            ng-class="{selected: app.id === selectedAppId}"
+        <tr ng-repeat="app in ctrl.tableData"
+            ng-click="selectCallback(app)"
+            ng-class="{selected: app === sel}"
             ng-repeat-done>
             <td class="table-icon">
                 <div icon icon-id="{{app._iconid_state}}"></div>
diff --git a/web/gui/src/main/webapp/app/view/app/app.js b/web/gui/src/main/webapp/app/view/app/app.js
index e315072..666b737 100644
--- a/web/gui/src/main/webapp/app/view/app/app.js
+++ b/web/gui/src/main/webapp/app/view/app/app.js
@@ -23,38 +23,21 @@
 
     angular.module('ovApp', [])
     .controller('OvAppCtrl',
-        ['$log', '$scope', 'FnService', 'WebSocketService',
+        ['$log', '$scope', 'TableBuilderService',
 
-        function ($log, $scope, fs, wss) {
-            var self = this;
-            self.appData = [];
+    function ($log, $scope, tbs) {
+        function selCb(row) {
+            // adjust which toolbar buttons are selected
+            $log.debug('Got a click on:', row);
+        }
 
-            $scope.responseCallback = function(data) {
-                self.appData = data.applications;
-                $scope.$apply();
-            };
+        tbs.buildTable({
+            self: this,
+            scope: $scope,
+            tag: 'app',
+            selCb: selCb
+        });
 
-            $scope.sortCallback = function (requestParams) {
-                wss.sendEvent('appDataRequest', requestParams);
-            };
-
-            $scope.selectedAppId = null;
-            $scope.setSelected = function (appId) {
-                $scope.selectedAppId = appId;
-            };
-
-            var handlers = {
-                appDataResponse: $scope.responseCallback
-            };
-            wss.bindHandlers(handlers);
-
-            // Cleanup on destroyed scope
-            $scope.$on('$destroy', function () {
-                wss.unbindHandlers(handlers);
-            });
-
-            $scope.sortCallback();
-
-            $log.log('OvAppCtrl has been created');
-        }]);
+        $log.log('OvAppCtrl has been created');
+    }]);
 }());
