diff --git a/web/gui/src/main/webapp/app/fw/svg/icon.js b/web/gui/src/main/webapp/app/fw/svg/icon.js
index 8e0252f..659a5be 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.js
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.js
@@ -71,6 +71,7 @@
         nav_processors: 'allTraffic',
 
         nav_topo: 'topo',
+        nav_topo2: 'm_cloud',
         nav_devs: 'switch',
         nav_links: 'ports',
         nav_hosts: 'endstation',
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Background.js b/web/gui/src/main/webapp/app/view/topo2/topo2Background.js
index f0312f5..902ebdc 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Background.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Background.js
@@ -63,11 +63,8 @@
                         t2ms.init();
                         this.zoomer = t2zs.getZoomer();
                     },
+
                     addLayout: function (data) {
-
-                        var oldBgType = this.bgType,
-                            oldBgId = this.bgId;
-
                         this.background = data;
                         this.bgType = data.bgType;
                         this.bgId = data.bgId;
@@ -105,14 +102,17 @@
                             t2ms.hide();
                             t2sls.hide();
 
-                            // TODO: don't just use previous layout's pan/zoom settings!
-                            // _this.region.loaded('bgRendered', true);
-                            // t2zs.panAndZoom(pan, _this.background.bgZoomScale, 1000);
+                            _this.region.loaded('bgRendered', true);
+
+                            // Use default zoom and pan
+                            t2zs.panAndZoom([0, 0], 1);
                         }
                     },
+
                     getBackgroundType: function () {
                         return this.bgType;
                     },
+
                     resetZoom: function () {
                         var pan = zoomPan(this.zoomData, true);
                         t2zs.panAndZoom(pan, zoomScale(this.zoomData, true), 1000);
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js b/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js
index fda74c7..d1fa72d 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js
@@ -17,7 +17,8 @@
 (function () {
 
     // Injected Services
-    var $log, fs, ks, flash, wss, t2ps, t2bgs, ps, t2is, t2sp, t2vs, t2rs, t2fs, t2sls, t2tbs;
+    var $log, fs, ks, flash, wss, t2ps, t2bgs, ps, t2is, t2sp, t2vs, t2rs,
+        t2fs, t2sls, t2tbs;
 
     // Commmands
     function actionMap() {
@@ -31,6 +32,7 @@
             E: [equalizeMasters, 'Equalize mastership roles'],
             X: [resetNodeLocation, 'Reset Node Location'],
             U: [unpinNode, 'Unpin node (mouse over)'],
+            dot: [toggleToolbar, 'Toggle Toolbar'],
 
             esc: handleEscape,
 
@@ -139,6 +141,10 @@
         flash.flash('Unpin node');
     }
 
+    function toggleToolbar() {
+        t2tbs.toggle();
+    }
+
     function notValid(what) {
         $log.warn('topo.js getActionEntry(): Not a valid ' + what);
     }
@@ -162,12 +168,13 @@
 
     angular.module('ovTopo2')
     .factory('Topo2KeyCommandService', [
-        '$log', 'FnService', 'KeyService', 'FlashService', 'WebSocketService', 'Topo2PrefsService',
-        'Topo2BackgroundService', 'PrefsService', 'Topo2InstanceService',
-        'Topo2SummaryPanelService', 'Topo2ViewService', 'Topo2RegionService',
-        'Topo2SpriteLayerService',
-        function (_$log_, _fs_, _ks_, _flash_, _wss_, _t2ps_, _t2bgs_, _ps_, _t2is_, _t2sp_,
-                  _t2vs_, _t2rs_, _t2sls_) {
+        '$log', 'FnService', 'KeyService', 'FlashService', 'WebSocketService',
+        'Topo2PrefsService', 'Topo2BackgroundService', 'PrefsService',
+        'Topo2InstanceService', 'Topo2SummaryPanelService', 'Topo2ViewService',
+        'Topo2RegionService', 'Topo2SpriteLayerService',
+
+        function (_$log_, _fs_, _ks_, _flash_, _wss_, _t2ps_, _t2bgs_, _ps_,
+                  _t2is_, _t2sp_, _t2vs_, _t2rs_, _t2sls_) {
 
             $log = _$log_;
             fs = _fs_;
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Toolbar.js b/web/gui/src/main/webapp/app/view/topo2/topo2Toolbar.js
index a0b1b94..264ce54 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Toolbar.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Toolbar.js
@@ -43,7 +43,7 @@
                         this.el.addRow();
                         this.addSecondRow();
 
-                        this.el.show();
+                        this.el.hide();
                     },
                     initKeyData: function () {
                         _.each(k2b, function(value, key) {
@@ -74,6 +74,10 @@
                         v.tog = this.el.addToggle(v.id, v.gid, v.isel, v.cb, v.tt);
                     },
 
+                    toggle: function () {
+                        this.el.toggle();
+                    },
+
                     addFirstRow: function () {
                         this.addToggle('I');
                         this.addToggle('O');
