diff --git a/web/ons-demo/RELEASE_NOTES.txt b/web/ons-demo/RELEASE_NOTES.txt
index 725dd23..41f4fcd 100644
--- a/web/ons-demo/RELEASE_NOTES.txt
+++ b/web/ons-demo/RELEASE_NOTES.txt
@@ -1,4 +1,11 @@
 ** April 8, 2013 **
+- map view
+- onos nodes at top
+- count only active switches in header
+- hook up switchctrl all and local actions
+
+
+** April 8, 2013 **
 - add explicit timeout logic so that the GUI doesn't have to be refreshed if the API misbehaves
 
 ** April 8, 2013 **
diff --git a/web/ons-demo/css/layout.default.css b/web/ons-demo/css/layout.default.css
index 2aa16fe..297e31b 100644
--- a/web/ons-demo/css/layout.default.css
+++ b/web/ons-demo/css/layout.default.css
@@ -102,15 +102,20 @@
 	width: 100%;
 }
 
-#controllerList {
+#onos {
 	display: -webkit-box;
-	-webkit-box-orient: horizontal;
-	overflow: scroll;
+}
+
+#actions {
+	display: -webkit-box;
 }
 
 #controllers {
 	display: -webkit-box;
+	overflow: scroll;
+	-webkit-box-flex: 1.0;
 }
+
 .controller {
 	margin: .25em;
 	background-color: blue;
diff --git a/web/ons-demo/css/skin.default.css b/web/ons-demo/css/skin.default.css
index 843fa4a..ae7dc4a 100644
--- a/web/ons-demo/css/skin.default.css
+++ b/web/ons-demo/css/skin.default.css
@@ -98,7 +98,7 @@
 	background-color: black;
 }
 
-.header, #controllers {
+.header, #onos {
 	border-bottom: 1px solid #AAA;;
 }
 
@@ -194,8 +194,20 @@
 	padding: .25em;
 	padding-left: 2.5em;
 	position: relative;
+	border: 1px solid #444;
+	color: white;
+	position: relative;
 }
 
+.controller:hover {
+	border: 1px solid white;
+}
+
+.action, .controller {
+	font-size: 20px;
+}
+
+
 .black-eye {
 	position: absolute;
 	top: 0px;
@@ -295,6 +307,7 @@
 
 .color2 {
 	opacity: .15;
+	pointer-events: none;
 	fill: #FFBA00;
 	background-color: #FFBA00;
 }
@@ -343,6 +356,7 @@
 
 .color9 {
 	opacity: .2;
+	pointer-events: none;
 	fill: #F53D65;
 	background-color: #F53D65;
 }
@@ -368,6 +382,27 @@
 	background-color: #6949D7;
 }
 
+.action {
+	margin: .25em;
+	padding: .25em;
+	padding-left: 1em;
+	padding-right: 1em;
+	border: 1px solid #AAA;
+	background-color: #444;
+	display: -webkit-box;
+	-webkit-box-pack: center;
+	-webkit-box-align: center;
+	color: white;
+}
+
+.action:hover {
+	border: 1px solid #FFF;
+}
+
+.action:active {
+	background-color: #222;
+}
+
 
 @-webkit-keyframes pending {
 	from {
diff --git a/web/ons-demo/index.html b/web/ons-demo/index.html
index 4663262..ca930ec 100644
--- a/web/ons-demo/index.html
+++ b/web/ons-demo/index.html
@@ -19,7 +19,14 @@
 		<div id='lastUpdated' class='status'><span class='static'>Last updated:</span><span id='lastUpdate' class='dynamic'>Mon Mar 18 11:11:12 PDT 2013</span></div>
 	</div>
 
-	<div id='controllers'></div>
+	<div id='onos'>
+		<div id='controllers'></div>
+		<div id='actions'>
+			<div id='action-all' class='action'>ALL</div>
+			<div id='action-local' class='action'>LOCAL</div>
+			<div id='action-scale' class='action'>SCALE</div>
+		</div>
+	</div>
 
 	<div id='topologyArea'>
 		<div id='svg-container'></div>
diff --git a/web/ons-demo/js/controller.js b/web/ons-demo/js/controller.js
index fbc381e..211fa97 100644
--- a/web/ons-demo/js/controller.js
+++ b/web/ons-demo/js/controller.js
@@ -50,6 +50,10 @@
 		var flowId = parseInt(flow.flowId, 16);
 		var url = '/proxy/gui/iperf/rate/' + flowId;
 		callURL(url, cb);
+	},
+	switchControllerCmd: function (cmd) {
+		var url = '/proxy/gui/switchctrl/' + cmd;
+		callURL(url);
 	}
 };
 
@@ -92,3 +96,12 @@
 function getIPerfData(flow, cb) {
 	controllerFunctions.getIPerfDataCmd(flow, cb);
 }
+
+function switchLocal() {
+	controllerFunctions.switchControllerCmd('local');
+}
+
+function switchAll() {
+	controllerFunctions.switchControllerCmd('all');
+}
+
diff --git a/web/ons-demo/js/init.js b/web/ons-demo/js/init.js
index 2fc897d..dd11bf8 100644
--- a/web/ons-demo/js/init.js
+++ b/web/ons-demo/js/init.js
@@ -7,5 +7,23 @@
 		showFlowChooser();
 	});
 
+	d3.select('#action-all').on('click', function () {
+		var prompt = "Switch controllers to all?"
+		if (confirm(prompt)) {
+			switchAll();
+		}
+	});
+
+	d3.select('#action-local').on('click', function () {
+		var prompt = "Switch controllers to local?"
+		if (confirm(prompt)) {
+			switchLocal();
+		}
+	});
+
+	d3.select('#action-scale').on('click', function () {
+		alert('scale')
+	});
+
 	createTopologyView(cb);
 }
diff --git a/web/topology_rest.py b/web/topology_rest.py
index 9181248..036776f 100755
--- a/web/topology_rest.py
+++ b/web/topology_rest.py
@@ -197,6 +197,19 @@
   resp = Response(result, status=200, mimetype='application/json')
   return resp
 
+@app.route("/proxy/gui/switchctrl/<cmd>")
+def proxy_switch_controller_setting(cmd):
+  try:
+    command = "curl -s %s/gui/switchctrl/%s" % (ONOS_GUI3_CONTROL_HOST, cmd)
+    print command
+    result = os.popen(command).read()
+  except:
+    print "REST IF has issue"
+    exit
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
 
 ###### ONOS RESET API ##############################
 ## Worker Func ###
