diff --git a/app/common/directives/app-navigation.html b/app/common/directives/app-navigation.html
index e54b236..f69bfc7 100644
--- a/app/common/directives/app-navigation.html
+++ b/app/common/directives/app-navigation.html
@@ -89,19 +89,21 @@
       <a href="#/server-control/remote-console" tabindex="14" ng-click="closeSubnav()">Serial over LAN console</a></li>
     <li ng-class="{'active': (path == '/server-control/kvm')}">
       <a href="#/server-control/kvm" tabindex="15" ng-click="closeSubnav()">KVM</a></li>
+    <li ng-class="{'active': (path == '/configuration' || path == '/configuration/virtual-media')}">
+      <a href="#/configuration/virtual-media" tabindex="16" ng-click="closeSubnav()">Virtual Media</a></li>
   </ul>
   <ul class="nav__second-level btn-firmware" ng-style="navStyle" ng-class="{opened: (showSubMenu && firstLevel == 'configuration')}">
     <li ng-class="{'active': (path == '/configuration' || path == '/configuration/network')}">
-      <a href="#/configuration/network" tabindex="16" ng-click="closeSubnav()">Network settings</a></li>
+      <a href="#/configuration/network" tabindex="17" ng-click="closeSubnav()">Network settings</a></li>
     <li ng-class="{'active': (path == '/configuration' || path == '/configuration/snmp')}">
-      <a href="#/configuration/snmp" tabindex="17" ng-click="closeSubnav()">SNMP settings</a></li>
+      <a href="#/configuration/snmp" tabindex="18" ng-click="closeSubnav()">SNMP settings</a></li>
     <li ng-class="{'active': (path == '/configuration' || path == '/configuration/firmware')}">
-      <a href="#/configuration/firmware" tabindex="18" ng-click="closeSubnav()">Firmware</a></li>
+      <a href="#/configuration/firmware" tabindex="19" ng-click="closeSubnav()">Firmware</a></li>
     <li ng-class="{'active': (path == '/configuration' || path == '/configuration/date-time')}">
-      <a href="#/configuration/date-time" tabindex="19" ng-click="closeSubnav()">Date and time settings</a></li>
+      <a href="#/configuration/date-time" tabindex="20" ng-click="closeSubnav()">Date and time settings</a></li>
   </ul>
   <ul class="nav__second-level btn-users" ng-style="navStyle" ng-class="{opened: (showSubMenu && firstLevel == 'users')}">
     <li ng-class="{'active': (path == '/users' || path == '/users/manage-accounts')}">
-      <a href="#/users/manage-accounts" tabindex="20" ng-click="closeSubnav()">Manage user account</a></li>
+      <a href="#/users/manage-accounts" tabindex="21" ng-click="closeSubnav()">Manage user accounts</a></li>
   </ul>
 </nav>
diff --git a/app/common/services/nbdServerService.js b/app/common/services/nbdServerService.js
new file mode 100644
index 0000000..835054c
--- /dev/null
+++ b/app/common/services/nbdServerService.js
@@ -0,0 +1,26 @@
+/**
+ * Network block device (NBD) Server service. Keeps all NBD connections.
+ *
+ * @module app/common/services/nbdServerService
+ * @exports nbdServerService
+ * @name nbdServerService
+
+ */
+
+window.angular && (function(angular) {
+  'use strict';
+
+  angular.module('app.common.services').service('nbdServerService', [
+    'Constants',
+    function(Constants) {
+      this.nbdServerMap = {};
+
+      this.addConnection = function(index, nbdServer, file) {
+        this.nbdServerMap[index] = {'server': nbdServer, 'file': file};
+      };
+      this.getExistingConnections = function(index) {
+        return this.nbdServerMap;
+      }
+    }
+  ]);
+})(window.angular);
diff --git a/app/common/styles/base/buttons.scss b/app/common/styles/base/buttons.scss
index 70b70cc..541d15e 100644
--- a/app/common/styles/base/buttons.scss
+++ b/app/common/styles/base/buttons.scss
@@ -1,9 +1,11 @@
-button, .button, .submit {
+button,
+.button,
+.submit {
   font-size: 1em;
   @include fontFamilyBold;
   text-transform: none;
   border-radius: 3px;
-  padding: .5rem 2rem .5rem;
+  padding: 0.5rem 2rem 0.5rem;
   height: auto;
   border: 0;
   overflow: hidden;
@@ -11,7 +13,12 @@
     cursor: pointer;
   }
   &.disabled {
+    pointer-events: none;
     color: $btn__disabled-txt;
+    background-color: $btn__disabled-bg;
+    border-color: $btn__disabled-bg;
+    border-style: solid;
+    border-width: 2px;
     &:hover {
       cursor: default;
       background: transparent;
@@ -36,14 +43,15 @@
       cursor: default;
     }
   }
-  i { //button symbol
+  i {
+    //button symbol
     font-style: normal;
     text-transform: none;
     font-size: 1.5em;
     transform: rotate(80deg);
     display: inline-block;
   }
-  img{
+  img {
     width: 18px;
     height: 18px;
     display: inline-block;
@@ -61,14 +69,18 @@
     @include fastTransition-all;
   }
   &.disabled {
-    border: 2px solid $lightgrey;
-    background: $btn__disabled-bg;
-    @include fastTransition-all;
+    pointer-events: none;
+    color: $btn__disabled-txt;
+    background-color: $btn__disabled-bg;
+    border-color: $btn__disabled-bg;
+    border-style: solid;
+    border-width: 2px;
     &:hover {
       background: $btn__disabled-bg;
     }
   }
-  i { // button symbol
+  i {
+    // button symbol
     font-style: normal;
     font-weight: 400;
     text-transform: none;
@@ -77,11 +89,11 @@
     display: inline-block;
     vertical-align: middle;
   }
-  img{
+  img {
     width: 18px;
     height: 18px;
     display: inline-block;
-    margin-right: .5em;
+    margin-right: 0.5em;
     margin-top: -3px;
   }
 }
@@ -94,7 +106,7 @@
     text-decoration: underline;
   }
   &:before {
-    content: '';
+    content: "";
     position: absolute;
     left: 0;
     top: 0px;
@@ -105,14 +117,14 @@
     border-top: 4px solid $black;
   }
   &:after {
-    content: '\2794';
+    content: "\2794";
     position: absolute;
     transform: rotate(-45deg);
-    font-size: .9em;
+    font-size: 0.9em;
     font-weight: 700;
     vertical-align: middle;
     display: inline-block;
     left: 11px;
     top: 0px;
   }
-}
\ No newline at end of file
+}
