diff --git a/web/ons-demo/js/app.js b/web/ons-demo/js/app.js
index f54deae..daf767c 100644
--- a/web/ons-demo/js/app.js
+++ b/web/ons-demo/js/app.js
@@ -578,23 +578,23 @@
 						if (confirm(prompt)) {
 							var link1 = {
 								'src-switch': srcData.dpid,
-								'src-port': 0,
+								'src-port': 1,
 								'dst-switch': dstData.dpid,
-								'dst-port': 0,
+								'dst-port': 1,
 								pending: true
 							};
 							pendingLinks[makeLinkKey(link1)] = link1;
 							var link2 = {
 								'src-switch': dstData.dpid,
-								'src-port': 0,
+								'src-port': 1,
 								'dst-switch': srcData.dpid,
-								'dst-port': 0,
+								'dst-port': 1,
 								pending: true
 							};
 							pendingLinks[makeLinkKey(link2)] = link2;
 							updateTopology(svg, model);
 
-							linkUp(srcData, dstData);
+							linkUp(link1);
 
 							// remove the pending link after 10s
 							setTimeout(function () {
@@ -749,7 +749,9 @@
 		})
 		.text(function (d) {
 			return d;
-		});
+		})
+		.append('div')
+		.attr('class', 'controllerEye');
 
 	controllers.attr('class', function (d) {
 			var color = 'colorInactive';
@@ -763,7 +765,23 @@
 	// this should never be needed
 	// controllers.exit().remove();
 
-	controllers.on('click', function (c) {
+	controllers.on('dblclick', function (c) {
+		if (model.activeControllers.indexOf(c) != -1) {
+			var prompt = 'Dectivate ' + c + '?';
+			if (confirm(prompt)) {
+				controllerDown(c);
+				setPending(d3.select(this));
+			};
+		} else {
+			var prompt = 'Activate ' + c + '?';
+			if (confirm(prompt)) {
+				controllerUp(c);
+				setPending(d3.select(this));
+			};
+		}
+	});
+
+	controllers.select('.controllerEye').on('click', function (c) {
 		var allSelected = true;
 		for (var key in controllerColorMap) {
 			if (!d3.select(document.body).classed(controllerColorMap[key] + '-selected')) {
diff --git a/web/ons-demo/js/controller.js b/web/ons-demo/js/controller.js
index b61b2d4..a36ae1c 100644
--- a/web/ons-demo/js/controller.js
+++ b/web/ons-demo/js/controller.js
@@ -20,6 +20,10 @@
 	s: function (cmd, s) {
 		var url = '/proxy/gui/switch/' + [cmd, s.dpid].join('/');
 		callURL(url);
+	},
+	c: function (cmd, c) {
+		var url = '/proxy/gui/controller/' + [cmd, c].join('/');
+		callURL(url);
 	}
 };
 
@@ -45,6 +49,14 @@
 	controllerFunctions.s('down', s);
 }
 
+function controllerUp(c) {
+	controllerFunctions.c('up', c);
+}
+
+function controllerDown(c) {
+	controllerFunctions.c('down', c);
+}
+
 function createFlow(src, dst) {
 
 }
