diff --git a/app/overview/controllers/bmc-reboot-controller.html b/app/overview/controllers/bmc-reboot-controller.html
deleted file mode 100644
index b847624..0000000
--- a/app/overview/controllers/bmc-reboot-controller.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<div id="bmc-reboot">
-    <div class="row column">
-        <h1>Reboot BMC</h1>
-    </div>
-
-    <div class="row column  btm-border-grey">
-        <span class="bmc-reboot__status-log inline">BMC last reboot at {{dataService.last_updated |date:'h:mm:ss on MM/dd/yyyy'}}</span>
-    </div>
-
-    <div class="row column btm-border-grey bmc-reboot-option"
-         ng-class="{disabled: confirm || dataService.loading, transitionAll: confirm}">
-        <ul>
-            <li>Rebooting the BMC causes your browser to lose contact with the BMC for several minutes.</li>
-            <li>When the BMC software has started, you can then log in again.</li>
-            <li>If the Log In button is not enabled after several minutes, you may need to point your browser to the
-                BMC’s address and log in again.
-            </li>
-        </ul>
-        <button id="bmc__reboot" class="btn-secondary" ng-click="rebootConfirm()"><i>&#x21BB</i> Reboot BMC
-        </button>
-        <confirm title="Reboot the BMC"
-                 message="Rebooting the BMC causes your browser to lose contact with the BMC for several minutes."
-                 confirm="confirm"
-                 ng-show="confirm"
-                 callback="reboot"></confirm>
-    </div>
-</div>
diff --git a/app/overview/controllers/bmc-reboot-controller.js b/app/overview/controllers/bmc-reboot-controller.js
deleted file mode 100644
index e01d66c..0000000
--- a/app/overview/controllers/bmc-reboot-controller.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Controller for bmc-reboot
- *
- * @module app/overview
- * @exports bmcRebootController
- * @name bmcRebootController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('bmcRebootController', [
-            '$scope', 
-            '$window', 
-            'APIUtils', 
-            'dataService',
-            function($scope, $window, APIUtils, dataService){
-                $scope.dataService = dataService;
-                $scope.confirm = false;
-                $scope.rebootConfirm = function(){
-                    if($scope.confirm) {
-                        return;
-                    }
-                    $scope.confirm = true;
-                };
-                $scope.reboot = function(){
-                    dataService.setBootingState();
-                    APIUtils.bmcReboot(function(response){
-                        //@NOTE: using common event to reload server status, may be a better event listener name?
-                        $scope.$emit('user-logged-in',{});
-                    });
-                };
-            }
-        ]
-    );
-
-})(angular);
diff --git a/app/overview/controllers/inventory-controller.html b/app/overview/controllers/inventory-controller.html
deleted file mode 100644
index 7da39f9..0000000
--- a/app/overview/controllers/inventory-controller.html
+++ /dev/null
@@ -1,485 +0,0 @@
-<div id="inventory">
-    <div class="row column">
-        <h1>CPU cores inventory</h1>
-    </div>
-    <section class="row column">
-        <div class="page-header">
-            <h2 class="inline h4">CPU cores present in the system</h2>
-            <button class="inline btn-export float-right">Export</button>
-        </div>
-    </section>
-    <!-- Filters -->
-    <section class="row column">
-        <!-- search -->
-        <div class="content__search">
-            <label for="content__search-input">Search</label>
-            <input id="content__search-input" type="text" placeholder="Filter hardware components"/>
-            <input id="content__search-submit" type="submit" class="btn btn-secondary" value="Submit"/>
-        </div>
-        <div class="toggle-filter">
-            <button class="inline first" ng-click="toggleall = !toggleall"
-                    ng-class="toggleall ? 'btn-primary' : 'btn-secondary'">All
-            </button>
-            <button class="inline " ng-click="togglehigh = !togglehigh"
-                    ng-class="togglehigh ? 'btn-primary' : 'btn-secondary'">High
-            </button>
-            <button class="inline" ng-click="togglemed = !togglemed"
-                    ng-class="togglemed ? 'btn-primary' : 'btn-secondary'">Medium
-            </button>
-            <button class="inline last" ng-click="togglelow = !togglelow"
-                    ng-class="togglelow ? 'btn-primary' : 'btn-secondary'">Low
-            </button>
-        </div>
-    </section> <!-- end filter -->
-    <section class="row column">
-        <div id="back-link">
-            <a href="#/overview/inventory-overview">Back to Inventory overview</a>
-        </div>
-    </section>
-    <section id="inventory__details" class="row">
-        <div class="row column header-row header__actions-bar">
-            <div class="column small-12 large-3  ">
-                <p class="inline inventory__heading inventory__device-col"><span
-                        class="inline priority-tag-circ high-priority" aria-label="High Priority"></span>CPU cores (6)
-                </p>
-            </div>
-            <div class="column hide-for-medium-only large-3  ">
-                <p class="inline inventory__heading inventory__function-col inv-active">Active</p>
-            </div>
-            <div class="column hide-for-medium-only large-3  ">
-                <p class="inline inventory__heading inventory__present-col inv-present">Present</p>
-            </div>
-            <div class="column hide-for-medium-only large-2  ">
-                <p class="inline inventory__heading inventory__state-col inventory__critical-label" aria-label="High - Emergency">High - Emergency</p>
-            </div>
-            <div class="column small-4 large-1 "></div>
-        </div>
-
-        <!-- Inventory Item -->
-        <div class="row column accord-row"
-                ng-class="{'active': inventory__metadatarow, 'selected': inventory__selected}">
-            <div class="row column" ng-click="inventory__metadatarow = ! inventory__metadatarow">
-                <div class="column small-12 large-3 inventory__info">
-                    <p class="priority-tag-circ high-priority" aria-label="High Priority"></p>
-                    <p class="inventory__title">CPU core 5</p>
-                </div>
-                <div class="column small-12 large-3">
-                    <p class="content-label">Part Number</p>
-                    <p class="courier-bold">1230123ab</p>
-                </div>
-                <div class="column small-12 large-3">
-                    <p class="content-label">Serial Number</p>
-                    <p class="courier-bold">1230123ab</p>
-                </div>
-                <div class="column small-12 small-4 large-2">
-                    <p class="content-label">Model Number</p>
-                    <p class="courier-bold">86399-2201</p>
-                </div>
-                <button class="accord-trigger" ng-class="{'active': inventory__metadatarow}"></button>
-            </div>
-            <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow}">
-                <div class="row column">
-                    <div class="column large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-                    <div class="column large-3 small-12">
-                        <p class="content-label">Manufacturer</p>
-                        <p class="courier-bold">IBM</p>
-                    </div>
-                    <div class="column large-3 small-12">
-                        <p class="content-label">CCIN</p>
-                        <p class="courier-bold">2BE3</p>
-                    </div>
-                    <div class="column small-12 large-2">
-                        <p class="content-label">Version</p>
-                        <p class="courier-bold">EE86399-2201</p>
-                    </div>
-                    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-                </div>
-                <div class="row column">
-                    <div class="column small-12 large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-                    <div class="column small-12 large-3">
-                        <p class="content-label">Field Replacable</p>
-                        <p class="courier-bold">Not Replaceable</p>
-                    </div>
-                    <div class="column small-12 large-3">
-                        <p class="content-label">Build Date</p>
-                        <p class="courier-bold">04/01/2004</p>
-                    </div>
-                    <div class="column small-12 large-2">
-                        <p class="content-label">Cooling Type</p>
-                        <p class="courier-bold">Air cooled</p>
-                    </div>
-                    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-                </div>
-                <div class="row inv-event-log-row">
-                    <p class="column small-12 large-3 inventory__critical-label" aria-label="High - Emergency">High - Emergency</p>
-                    <p class="column small-12 large-7 ">
-                        org.open_power.Error.Host.Event.Event.Cras.amet...
-                    </p>
-                    <p class="column small-12 large-2">
-                        <a href="#/overviewlog"> View event log</a>
-                    </p>
-                </div>
-            </div>
-        </div>
-
-        <!-- Inventory Item -->
-        <div class="row column accord-row"
-             ng-class="{'active': inventory__metadatarow2, 'selected': inventory__selected}">
-            <div class="row column" ng-click="inventory__metadatarow2 = ! inventory__metadatarow2">
-                <div class="column small-12 large-3 inventory__info">
-                    <p class="priority-tag-circ high-priority" aria-label="High Priority"></p>
-                    <p class="inventory__title">CPU core 6</p>
-                </div>
-                <div class="column small-12 large-3">
-                    <p class="content-label">Part Number</p>
-                    <p class="courier-bold">12355123ab</p>
-                </div>
-                <div class="column small-12 large-3">
-                    <p class="content-label">Serial Number</p>
-                    <p class="courier-bold">123014423ab</p>
-                </div>
-                <div class="column small-12 small-4 large-2">
-                    <p class="content-label">Model Number</p>
-                    <p class="courier-bold">86399-32201</p>
-                </div>
-                <button class="accord-trigger" ng-class="{'active': inventory__metadatarow2}"></button>
-            </div>
-            <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow2}">
-                <div class="row column">
-                    <div class="column large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-                    <div class="column large-3 small-12">
-                        <p class="content-label">Manufacturer</p>
-                        <p class="courier-bold">IBM</p>
-                    </div>
-                    <div class="column large-3 small-12">
-                        <p class="content-label">CCIN</p>
-                        <p class="courier-bold">2BE3</p>
-                    </div>
-                    <div class="column small-12 large-2">
-                        <p class="content-label">Version</p>
-                        <p class="courier-bold">EE86399-2201</p>
-                    </div>
-                    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-                </div>
-                <div class="row column">
-                    <div class="column small-12 large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-                    <div class="column small-12 large-3">
-                        <p class="content-label">Field Replacable</p>
-                        <p class="courier-bold">Not Replaceable</p>
-                    </div>
-                    <div class="column small-12 large-3">
-                        <p class="content-label">Build Date</p>
-                        <p class="courier-bold">04/01/2004</p>
-                    </div>
-                    <div class="column small-12 large-2">
-                        <p class="content-label">Cooling Type</p>
-                        <p class="courier-bold">Air cooled</p>
-                    </div>
-                    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-                </div>
-                <div class="row inv-event-log-row">
-                    <p class="column small-12 large-3 inventory__critical-label" aria-label="Normal">High - emergency</p>
-                    <p class="column small-12 large-7 ">
-                        org.open_power.Error.Host.Event.Event.Cras.amet...
-                    </p>
-                    <p class="column small-12 large-2">
-                        <a href="#/overviewlog"> View event log</a>
-                    </p>
-                </div>
-            </div>
-        </div>
-
-	    <!-- Inventory Item -->
-	    <div class="row column accord-row"
-	         ng-class="{'active': inventory__metadatarow5, 'selected': inventory__selected}">
-		    <div class="row column" ng-click="inventory__metadatarow5 = ! inventory__metadatarow5">
-			    <div class="column small-12 large-3 inventory__info">
-				    <p class="priority-tag-circ warn-priority" aria-label="Warning Priority"></p>
-				    <p class="inventory__title">CPU core 4</p>
-			    </div>
-			    <div class="column small-12 large-3">
-				    <p class="content-label">Part Number</p>
-				    <p class="courier-bold">14530123ab</p>
-			    </div>
-			    <div class="column small-12 large-3">
-				    <p class="content-label">Serial Number</p>
-				    <p class="courier-bold">12350123ab</p>
-			    </div>
-			    <div class="column small-12 small-4 large-2">
-				    <p class="content-label">Model Number</p>
-				    <p class="courier-bold">86399-2201</p>
-			    </div>
-			    <button class="accord-trigger" ng-class="{'active': inventory__metadatarow5}"></button>
-		    </div>
-		    <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow5}">
-			    <div class="row column">
-				    <div class="column large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column large-3 small-12">
-					    <p class="content-label">Manufacturer</p>
-					    <p class="courier-bold">IBM</p>
-				    </div>
-				    <div class="column large-3 small-12">
-					    <p class="content-label">CCIN</p>
-					    <p class="courier-bold">2BE3</p>
-				    </div>
-				    <div class="column small-12 large-2">
-					    <p class="content-label">Version</p>
-					    <p class="courier-bold">EE86399-2201</p>
-				    </div>
-				    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-			    </div>
-			    <div class="row column">
-				    <div class="column small-12 large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column small-12 large-3">
-					    <p class="content-label">Field Replacable</p>
-					    <p class="courier-bold">Not Replaceable</p>
-				    </div>
-				    <div class="column small-12 large-3">
-					    <p class="content-label">Build Date</p>
-					    <p class="courier-bold">04/01/2004</p>
-				    </div>
-				    <div class="column small-12 large-2">
-					    <p class="content-label">Cooling Type</p>
-					    <p class="courier-bold">Air cooled</p>
-				    </div>
-				    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-			    </div>
-			    <div class="row inv-event-log-row">
-				    <p class="column small-12 large-3 inventory__warning-label" aria-label="Warning Priority">Medium - Warning</p>
-				    <p class="column small-12 large-7 ">
-					    org.open_power.Error.Host.Event.Event.Cras.amet...
-				    </p>
-				    <p class="column small-12 large-2">
-					    <a href="#/overviewlog"> View event log</a>
-				    </p>
-			    </div>
-		    </div>
-	    </div>
-	    
-        <!-- Inventory Item -->
-        <div class="row column accord-row"
-             ng-class="{'active': inventory__metadatarow3, 'selected': inventory__selected}">
-            <div class="row column" ng-click="inventory__metadatarow3 = ! inventory__metadatarow3">
-                <div class="column small-12 large-3 inventory__info">
-                    <p class="priority-tag-circ normal-priority" aria-label="Normal Priority"></p>
-                    <p class="inventory__title">CPU core 1</p>
-                </div>
-                <div class="column small-12 large-3">
-                    <p class="content-label">Part Number</p>
-                    <p class="courier-bold">123024123ab</p>
-                </div>
-                <div class="column small-12 large-3">
-                    <p class="content-label">Serial Number</p>
-                    <p class="courier-bold">123043123ab</p>
-                </div>
-                <div class="column small-12 small-4 large-2">
-                    <p class="content-label">Model Number</p>
-                    <p class="courier-bold">86399-2201</p>
-                </div>
-                <button class="accord-trigger" ng-class="{'active': inventory__metadatarow3}"></button>
-            </div>
-            <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow3}">
-                <div class="row column">
-                    <div class="column large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-                    <div class="column large-3 small-12">
-                        <p class="content-label">Manufacturer</p>
-                        <p class="courier-bold">IBM</p>
-                    </div>
-                    <div class="column large-3 small-12">
-                        <p class="content-label">CCIN</p>
-                        <p class="courier-bold">2BE3</p>
-                    </div>
-                    <div class="column small-12 large-2">
-                        <p class="content-label">Version</p>
-                        <p class="courier-bold">EE86399-2201</p>
-                    </div>
-                    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-                </div>
-                <div class="row column">
-                    <div class="column small-12 large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-                    <div class="column small-12 large-3">
-                        <p class="content-label">Field Replacable</p>
-                        <p class="courier-bold">Not Replaceable</p>
-                    </div>
-                    <div class="column small-12 large-3">
-                        <p class="content-label">Build Date</p>
-                        <p class="courier-bold">04/01/2004</p>
-                    </div>
-                    <div class="column small-12 large-2">
-                        <p class="content-label">Cooling Type</p>
-                        <p class="courier-bold">Air cooled</p>
-                    </div>
-                    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-                </div>
-                <div class="row inv-event-log-row">
-                    <p class="column small-12 large-3 inventory__low-label" aria-label="Low Priority">Low - informational</p>
-                    <p class="column small-12 large-7 ">
-                        org.open_power.Error.Host.Event.Event.Cras.amet...
-                    </p>
-                    <p class="column small-12 large-2">
-                        <a href="#/overviewlog"> View event log</a>
-                    </p>
-                </div>
-            </div>
-        </div>
-
-	    <!-- Inventory Item -->
-	    <div class="row column accord-row"
-	         ng-class="{'active': inventory__metadatarow4, 'selected': inventory__selected}">
-		    <div class="row column" ng-click="inventory__metadatarow4 = ! inventory__metadatarow4">
-			    <div class="column small-12 large-3 inventory__info">
-				    <p class="priority-tag-circ normal-priority" aria-label="Normal Priority"></p>
-				    <p class="inventory__title">CPU core 2</p>
-			    </div>
-			    <div class="column small-12 large-3">
-				    <p class="content-label">Part Number</p>
-				    <p class="courier-bold">123012443ab</p>
-			    </div>
-			    <div class="column small-12 large-3">
-				    <p class="content-label">Serial Number</p>
-				    <p class="courier-bold">1230333123ab</p>
-			    </div>
-			    <div class="column small-12 small-4 large-2">
-				    <p class="content-label">Model Number</p>
-				    <p class="courier-bold">86399-2201</p>
-			    </div>
-			    <button class="accord-trigger" ng-class="{'active': inventory__metadatarow4}"></button>
-		    </div>
-		    <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow4}">
-			    <div class="row column">
-				    <div class="column large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column large-3 small-12">
-					    <p class="content-label">Manufacturer</p>
-					    <p class="courier-bold">IBM</p>
-				    </div>
-				    <div class="column large-3 small-12">
-					    <p class="content-label">CCIN</p>
-					    <p class="courier-bold">2BE3</p>
-				    </div>
-				    <div class="column small-12 large-2">
-					    <p class="content-label">Version</p>
-					    <p class="courier-bold">EE86399-2201</p>
-				    </div>
-				    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-			    </div>
-			    <div class="row column">
-				    <div class="column small-12 large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column small-12 large-3">
-					    <p class="content-label">Field Replacable</p>
-					    <p class="courier-bold">Not Replaceable</p>
-				    </div>
-				    <div class="column small-12 large-3">
-					    <p class="content-label">Build Date</p>
-					    <p class="courier-bold">04/01/2004</p>
-				    </div>
-				    <div class="column small-12 large-2">
-					    <p class="content-label">Cooling Type</p>
-					    <p class="courier-bold">Air cooled</p>
-				    </div>
-				    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-			    </div>
-			    <div class="row inv-event-log-row">
-				    <p class="column small-12 large-3 inventory__low-label" aria-label="Low Priority">Low - informational</p>
-				    <p class="column small-12 large-7 ">
-					    org.open_power.Error.Host.Event.Event.Cras.amet...
-				    </p>
-				    <p class="column small-12 large-2">
-					    <a href="#/overviewlog"> View event log</a>
-				    </p>
-			    </div>
-		    </div>
-	    </div>
-
-	    <!-- Inventory Item -->
-	    <div class="row column accord-row"
-	         ng-class="{'active': inventory__metadatarow5, 'selected': inventory__selected}">
-		    <div class="row column" ng-click="inventory__metadatarow5 = ! inventory__metadatarow5">
-			    <div class="column small-12 large-3 inventory__info">
-				    <p class="priority-tag-circ normal-priority" aria-label="Normal Priority"></p>
-				    <p class="inventory__title">CPU core 3</p>
-			    </div>
-			    <div class="column small-12 large-3">
-				    <p class="content-label">Part Number</p>
-				    <p class="courier-bold">14530123ab</p>
-			    </div>
-			    <div class="column small-12 large-3">
-				    <p class="content-label">Serial Number</p>
-				    <p class="courier-bold">12350123ab</p>
-			    </div>
-			    <div class="column small-12 small-4 large-2">
-				    <p class="content-label">Model Number</p>
-				    <p class="courier-bold">86399-2201</p>
-			    </div>
-			    <button class="accord-trigger" ng-class="{'active': inventory__metadatarow5}"></button>
-		    </div>
-		    <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow5}">
-			    <div class="row column">
-				    <div class="column large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column large-3 small-12">
-					    <p class="content-label">Manufacturer</p>
-					    <p class="courier-bold">IBM</p>
-				    </div>
-				    <div class="column large-3 small-12">
-					    <p class="content-label">CCIN</p>
-					    <p class="courier-bold">2BE3</p>
-				    </div>
-				    <div class="column small-12 large-2">
-					    <p class="content-label">Version</p>
-					    <p class="courier-bold">EE86399-2201</p>
-				    </div>
-				    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-			    </div>
-			    <div class="row column">
-				    <div class="column small-12 large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column small-12 large-3">
-					    <p class="content-label">Field Replacable</p>
-					    <p class="courier-bold">Not Replaceable</p>
-				    </div>
-				    <div class="column small-12 large-3">
-					    <p class="content-label">Build Date</p>
-					    <p class="courier-bold">04/01/2004</p>
-				    </div>
-				    <div class="column small-12 large-2">
-					    <p class="content-label">Cooling Type</p>
-					    <p class="courier-bold">Air cooled</p>
-				    </div>
-				    <div class="column large-1 hide-for-medium-only">&nbsp;</div>
-			    </div>
-			    <div class="row inv-event-log-row">
-				    <p class="column small-12 large-3 inventory__low-label" aria-label="Low Priority">Low - informational</p>
-				    <p class="column small-12 large-7 ">
-					    org.open_power.Error.Host.Event.Event.Cras.amet...
-				    </p>
-				    <p class="column small-12 large-2">
-					    <a href="#/overviewlog"> View event log</a>
-				    </p>
-			    </div>
-		    </div>
-	    </div>
-    </section>
-    <paginate ng-include="paginate"></paginate>
-</div> <!-- end event log -->
\ No newline at end of file
diff --git a/app/overview/controllers/inventory-controller.js b/app/overview/controllers/inventory-controller.js
deleted file mode 100644
index 9dcc22c..0000000
--- a/app/overview/controllers/inventory-controller.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Controller for log
- *
- * @module app/overview
- * @exports logController
- * @name logController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('inventoryController', [
-            '$scope',
-            '$log',
-            '$window', 
-            'APIUtils', 
-            'dataService',
-            function($scope, $log, $window, APIUtils, dataService, userModel){
-                $scope.dataService = dataService;
-
-                $scope.dropdown_selected = false;
-
-            }
-        ]
-    );
-
-})(angular);
diff --git a/app/overview/controllers/inventory-overview-controller.html b/app/overview/controllers/inventory-overview-controller.html
deleted file mode 100644
index a81305f..0000000
--- a/app/overview/controllers/inventory-overview-controller.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<div id="inventory-overview">
-    <div class="row column">
-        <h1>Hardware Inventory</h1>
-    </div>
-    <section class="row column">
-        <div class="page-header">
-            <h2 class="inline h4">Inventory items present in the system</h2>
-            <button class="inline btn-export float-right">Export</button>
-        </div>
-    </section>
-    <section class="row column">
-        <!-- search -->
-        <div class="content__search">
-            <label for="content__search-input">Search</label> <input id="content__search-input" type="text"
-                                                                     placeholder="Filter hardware components"/> <input
-                id="content__search-submit" type="submit" class="btn btn-secondary"
-                value="Submit"/>
-        </div>
-        <div class="toggle-filter">
-            <button class="inline first" ng-click="toggleall = !toggleall"
-                    ng-class="toggleall ? 'btn-primary' : 'btn-secondary'">All
-            </button>
-            <button class="inline " ng-click="togglehigh = !togglehigh"
-                    ng-class="togglehigh ? 'btn-primary' : 'btn-secondary'">High
-            </button>
-            <button class="inline" ng-click="togglemed = !togglemed"
-                    ng-class="togglemed ? 'btn-primary' : 'btn-secondary'">Medium
-            </button>
-            <button class="inline last" ng-click="togglelow = !togglelow"
-                    ng-class="togglelow ? 'btn-primary' : 'btn-secondary'">Low
-            </button>
-        </div>
-    </section>
-    <!-- end search -->
-    <section id="inventory-categories" class="row column">
-        <div class="row column header-row">
-            <div class="column large-12 header__actions-bar">
-                <p class="inline inventory__heading inventory__device-col">Hardware</p>
-                <p class="inline inventory__heading inventory__function-col">Function</p>
-                <p class="inline inventory__heading inventory__present-col">Present</p>
-                <p class="inline inventory__heading inventory__state-col">State</p>
-            </div>
-        </div>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col">All devices (30)</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Motherboard (1)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col">&nbsp;</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>CPU (1)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col">&nbsp;</p>
-        </a>
-        <a class="inventory__group" href="#/overview/inventory">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ high-priority" aria-label="High Priority"></span>CPU cores (6)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col inventory__critical-label">High - Emergency</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>DIMM (4)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col">&nbsp;</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ warn-priority" aria-label="Warning Priority"></span>Fan (5)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col inventory__warning-label">Medium - Warning</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ normal-priority"></span>Chasis (3)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col">&nbsp;</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>BMC (5)</p>
-            <p class="inline inventory__function-col inv-active">Active</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col">&nbsp;</p>
-        </a>
-        <a class="inventory__group" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ medium-priority " aria-label="MediumPriority"></span>MISC (5)</p>
-            <p class="inline inventory__function-col inv-inactive">Inactive</p>
-            <p class="inline inventory__present-col inv-present">Present</p>
-            <p class="inline inventory__state-col inventory__medium-label">Medium - Error</p>
-        </a>
-        <a class="inventory__group inv-disabled" href="">
-            <p class="inline inventory__device-col"><span class="inline priority-tag-circ disabled" aria-label="Low Priority"></span>PCIE card (0)</p>
-            <p class="inline inventory__function-col inv-inactive">Inactive</p>
-            <p class="inline inventory__present-col inv-not-present">Not Present</p>
-            <p class="inline inventory__state-col inventory__low-label">Low - Informational</p>
-        </a>
-    </section>
-</div>
\ No newline at end of file
diff --git a/app/overview/controllers/inventory-overview-controller.js b/app/overview/controllers/inventory-overview-controller.js
deleted file mode 100644
index 9177ae5..0000000
--- a/app/overview/controllers/inventory-overview-controller.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Controller for log
- *
- * @module app/overview
- * @exports logController
- * @name logController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('inventoryOverviewController', [
-            '$scope', 
-            '$window', 
-            'APIUtils', 
-            'dataService',
-            function($scope, $window, APIUtils, dataService, userModel){
-                $scope.dataService = dataService;
-
-            }
-        ]
-    );
-
-})(angular);
diff --git a/app/overview/controllers/power-operations-controller.html b/app/overview/controllers/power-operations-controller.html
deleted file mode 100644
index edab627..0000000
--- a/app/overview/controllers/power-operations-controller.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<div id="power-operations">
-
-    <div class="row column">
-        <h1>Server power operation</h1>
-    </div>
-
-    <!-- Current status and bar display the state of the server. Class 'power__state-off' is applied to bar and 'power__state' text switches to say "off"-->
-    <div class="row column">
-        <div class="power__current-status ">
-            <h2 class="inline h4">Current status</h2>
-            <span class="power__status-log inline float-right">Server last reset at {{dataService.last_updated |date:'h:mm:ss on MM/dd/yyyy'}}</span>
-        </div>
-    </div>
-    <div class="row column">
-        <div id="power-indicator-bar" class="power__indicator-bar" ng-class="{'power__state-on': dataService.server_state == 'Running', 'power__state-off': dataService.server_state == 'Off', 'power__state-indet': dataService.server_state == 'Quiesced'}">
-            <p class="inline">{{dataService.server_id}}</p>
-            <h3 class="power__state inline float-right h3"><span>{{dataService.server_state}}</span></h3>
-        </div>
-    </div>
-    <div class="row column">
-        <div class="row column">
-            <h3 class="h4">Select a power operation</h3>
-        </div>
-
-        <!-- Power on displays only when server is shutdown -->
-        <div class="row column power-option" ng-hide="dataService.server_state == 'Running'" ng-class="{disabled: (confirm && !power_confirm) || dataService.loading, transitionAll: confirm && power_confirm}">
-            <button id="power__power-on" class="btn-secondary" ng-click="togglePower()" role="button"><img src="assets/images/icon-power.svg">Power On</button>
-            <p>Attempts to power on the server</p>
-
-            <!---<confirm title="power off" message="Power off the server" confirm="power_confirm" ng-show="power_confirm" callback="togglePower"></confirm>-->
-        </div>
-
-        <!-- Power reboot/shutdown options : when server is off all of these are hidden. When one option is selected, the others are disabled. -->
-        <div class="row column power-option" ng-hide="dataService.server_state == 'Off'" ng-class="{disabled: (confirm && !warmboot_confirm) || dataService.loading, transitionAll: confirm && warmboot_confirm}">
-            <button id="power__warm-boot" class="btn-secondary" ng-click="warmRebootConfirm()" role="button"><i>&#x21BB</i> Warm reboot</button>
-            <p>Attempts to perform an orderly shutdown before restarting the server</p>
-            <confirm title="Warm Reboot" message="perform an orderly shutdown" confirm="warmboot_confirm" ng-show="warmboot_confirm" callback="warmReboot"></confirm>
-        </div>
-        <div class="row column power-option" ng-hide="dataService.server_state == 'Off'" ng-class="{disabled: (confirm && !coldboot_confirm) || dataService.loading, transitionAll: confirm && coldboot_confirm}">
-            <button id="power__cold-boot" class="btn-secondary" ng-click="coldRebootConfirm()" role="button"><i>&#x21BB</i> Cold reboot</button>
-            <p>Shuts down the server immediately, then restarts it</p>
-            <confirm title="Cold Reboot" message="Shutdown server immediately." confirm="coldboot_confirm" ng-show="coldboot_confirm" cancel="coldbootCancel" callback="coldReboot"></confirm>
-        </div>
-        <div class="row column power-option" ng-hide="dataService.server_state == 'Off'" ng-class="{disabled: (confirm && !orderly_confirm) || dataService.loading, transitionAll: confirm && orderly_confirm}">
-            <button id="power__soft-shutdown" class="btn-secondary" ng-click="orderlyShutdownConfirm()" role="button"><img src="assets/images/icon-power.svg" />Orderly shutdown</button>
-            <p>Attempts to stop all software on the server before removing power</p>
-            <confirm title="Orderly shutdown" message="Attempts to stop all software orderly." confirm="orderly_confirm" ng-show="orderly_confirm" cancel="orderlyShutdownCancel" callback="orderlyShutdown"></confirm>
-        </div>
-        <div class="row column power-option" ng-hide="dataService.server_state == 'Off'" ng-class="{disabled: (confirm && !immediately_confirm) || dataService.loading, transitionAll: confirm && immediately_confirm}">
-            <button id="power__hard-shutdown" class="btn-secondary" ng-click="immediateShutdownConfirm()" role="button"><img src="assets/images/icon-power.svg" />Immediate shutdown</button>
-            <p>Removes power from the server without waiting for software to stop</p>
-            <confirm title="Immediate shutdown" message="Removes power from the server immediately." confirm="immediately_confirm" ng-show="immediately_confirm" cancel="immediatelyShutdownCancel" callback="immediateShutdown"></confirm>
-        </div>
-    </div>
-</div>
\ No newline at end of file
diff --git a/app/overview/controllers/power-operations-controller.js b/app/overview/controllers/power-operations-controller.js
deleted file mode 100644
index 1780da3..0000000
--- a/app/overview/controllers/power-operations-controller.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Controller for power-operations
- *
- * @module app/overview
- * @exports powerOperationsController
- * @name powerOperationsController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('powerOperationsController', [
-            '$scope', 
-            'APIUtils', 
-            'dataService', 
-            '$timeout', 
-            function($scope, APIUtils, dataService, $timeout){
-                $scope.dataService = dataService;
-                $scope.confirm = false;
-                $scope.power_confirm = false;
-                $scope.warmboot_confirm = false;
-                $scope.coldboot_confirm = false;
-                $scope.orderly_confirm = false;
-                $scope.immediately_confirm = false;
-
-                //@TODO: call api and get proper state
-                $scope.toggleState = function(){
-                    dataService.server_state = (dataService.server_state == 'Running') ? 'Off': 'Running';
-                }
-
-                $scope.togglePower = function(){
-                    var method = (dataService.server_state == 'Running') ? 'hostPowerOff' : 'hostPowerOn';
-                     //@TODO: show progress or set class orange
-                    APIUtils[method](function(response){
-                        //update state based on response
-                        //error case?
-                        if(response == null){
-                            console.log("Failed request.");
-                        }else{
-                            //@TODO::need to get the server status
-                            if(dataService.server_state == 'Running'){
-                                dataService.setPowerOffState();
-                            }else{
-                                dataService.setPowerOnState();
-                            }
-                        }
-                    });
-                }
-                $scope.powerOnConfirm = function(){
-                    if($scope.confirm) {
-                        return;
-                    }
-                    $scope.confirm = true;
-                    $scope.power_confirm = true;
-                };
-                $scope.warmReboot = function(){
-                    //@TODO:show progress
-                    dataService.setBootingState();
-                    APIUtils.hostPowerOff(function(response){
-                        if(response){
-                            APIUtils.hostPowerOn(function(response){
-                                if(response){
-                                    dataService.setPowerOnState();
-                                }else{
-                                    //@TODO:show error message
-                                }
-                            });
-                        }else{
-                        }
-                    });
-                };
-                $scope.testState = function(){
-                    $timeout(function(){
-                        dataService.setPowerOffState();
-                        $timeout(function(){
-                            dataService.setPowerOnState();
-                        }, 2000);
-                    }, 1000);
-                };
-                $scope.warmRebootConfirm = function(){
-                    if($scope.confirm) {
-                        return;
-                    }
-                    $scope.confirm = true;
-                    $scope.warmboot_confirm = true;
-                };
-
-                $scope.coldReboot = function(){
-                    $scope.warmReboot();
-                };
-                $scope.coldRebootConfirm = function(){
-                    if($scope.confirm) {
-                        return;
-                    }
-                    $scope.confirm = true;
-                    $scope.coldboot_confirm = true;
-                };
-
-                $scope.orderlyShutdown = function(){
-                    //@TODO:show progress
-                    APIUtils.hostPowerOff(function(response){
-                        if(response){
-                            dataService.setPowerOffState();
-                        }else{
-                            //@TODO:hide progress & show error message
-                        }
-                    });
-                };
-                $scope.orderlyShutdownConfirm = function(){
-                    if($scope.confirm) {
-                        return;
-                    }
-                    $scope.confirm = true;
-                    $scope.orderly_confirm = true;
-                };
-
-                $scope.immediateShutdown = function(){
-                    $scope.orderlyShutdown();
-                };
-                $scope.immediateShutdownConfirm = function(){
-                    if($scope.confirm) {
-                        return;
-                    }
-                    $scope.confirm = true;
-                    $scope.immediately_confirm = true;
-                };
-            }
-        ]
-    );
-
-})(angular);
diff --git a/app/overview/controllers/sensors-controller.html b/app/overview/controllers/sensors-controller.html
deleted file mode 100644
index ff4ea56..0000000
--- a/app/overview/controllers/sensors-controller.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<div id="sensors">
-    <div class="row column">
-        <h1>Fan Speed Sensors</h1>
-    </div>
-    <section class="row column">
-        <div class="page-header">
-            <h2 class="inline h4">Sensors present in the system</h2>
-            <button class="inline btn-export float-right">Export</button>
-        </div>
-    </section>
-
-    <!-- Filters -->
-    <section class="row column">
-        <!-- search -->
-        <div class="content__search">
-            <label for="content__search-input">Sensors Search</label>
-            <input id="content__search-input" type="text" placeholder="Filter issues"/>
-            <input id="content__search-submit" type="submit" class="btn btn-secondary" value="Submit"/>
-        </div>
-        <div class="toggle-filter">
-            <button class="inline first btn-primary">All
-            </button>
-            <button class="inline " ng-click="togglehigh = !togglehigh"
-                    ng-class="togglehigh ? 'btn-primary' : 'btn-secondary'">Critical
-            </button>
-            <button class="inline" ng-click="togglemed = !togglemed"
-                    ng-class="togglemed ? 'btn-primary' : 'btn-secondary'">Warning
-            </button>
-            <button class="inline last" ng-click="togglelow = !togglelow"
-                    ng-class="togglelow ? 'btn-primary' : 'btn-secondary'">Normal
-            </button>
-        </div>
-    </section> <!-- end filter -->
-
-    <section class="row column">
-    <div id="back-link">
-        <a href="#/overview/sensors-overview">Back to Sensor Overview</a>
-    </div>
-    </section>
-
-    <section id="sensor__details" class="row column">
-        <div class="row column header-row">
-            <div class="column small-10 large-11 end header__actions-bar">
-                <p class="inline priority-tag-circ high-priority" aria-label="High Priority"></p>
-                <p class="inline sensor__heading sensor__category">Fan speed (RPMs)</p>
-                <p class="inline sensor__heading middle">Reading</p>
-                <p class="inline float-right sensor__heading right">State</p>
-            </div>
-            <div class="column small-2 large-1 sensor__heading trigger-col"></div>
-        </div>
-
-        <!-- Sensor -->
-        <div class="row column accord-row" ng-class="{'active': sensors__metadatarow, 'selected': sensors__selected}">
-            <div class="row">
-                <div class="column small-10 large-11 sensor__info" ng-click="sensors__metadatarow = ! sensors__metadatarow">
-                    <p class="inline priority-tag-circ high-priority" aria-label="High Priority"></p>
-                    <p class="inline sensor__title">Fan Speed 1</p>
-                    <p class="inline sensor__reading">6200 <span>rpms</span></p>
-                    <p class="inline float-right sensor__critical-label">Critical</p>
-                </div>
-                <div class="column small-2 large-1">
-                    <button class="accord-trigger" ng-class="{'active': sensors__metadatarow}" ng-click="sensors__metadatarow = ! sensors__metadatarow"></button>
-                </div>
-            </div>
-            <div class="row sensors__metadata-row" ng-class="{'active': sensors__metadatarow}">
-                <div class="column small-12">
-                    <div class="threshold-chart__wrapper">
-                        <span class="threshold__label low">Low</span>
-                        <div class="threshold-chart">
-                            <span class="threshold__marker thresh__high-critical" style="left: 90%;"><span class="threshold__value">6200 RPMs</span></span>
-                            <span class="threshold thresh__low-critical"></span>
-                            <span class="threshold thresh__low-warn"></span>
-                            <span class="threshold thresh__normal"></span>
-                            <span class="threshold thresh__high-warn"></span>
-                            <span class="threshold thresh__high-critical"></span>
-                        </div>
-                        <span class="threshold__label high">High</span>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <!-- Sensor -->
-        <div class="row column accord-row" ng-class="{'active': sensors__metadatarow2, 'selected': sensors__selected}">
-            <div class="row">
-                <div class="column small-10 large-11 sensor__info" ng-click="sensors__metadatarow2 = ! sensors__metadatarow2">
-                    <p class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></p>
-                    <p class="inline sensor__title">Fan Speed 2</p>
-                    <p class="inline sensor__reading">4600 <span>rpms</span></p>
-                </div>
-                <div class="column small-2 large-1">
-                    <button class="accord-trigger" ng-class="{'active': sensors__metadatarow2}" ng-click="sensors__metadatarow2 = ! sensors__metadatarow2"></button>
-                </div>
-            </div>
-            <div class="row sensors__metadata-row" ng-class="{'active': sensors__metadatarow2}">
-                <div class="column small-12">
-                    <div class="threshold-chart__wrapper">
-                        <span class="threshold__label low">Low</span>
-                        <div class="threshold-chart">
-                            <span class="threshold__marker thresh__normal" style="left: 40%;"><span class="threshold__value">4600 RPMs</span></span>
-                            <span class="threshold thresh__low-critical"></span>
-                            <span class="threshold thresh__low-warn"></span>
-                            <span class="threshold thresh__normal"></span>
-                            <span class="threshold thresh__high-warn"></span>
-                            <span class="threshold thresh__high-critical"></span>
-                        </div>
-                        <span class="threshold__label high">High</span>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <!-- Sensor -->
-        <div class="row column accord-row" ng-class="{'active': sensors__metadatarow3, 'selected': sensors__selected}">
-            <div class="row">
-                <div class="column small-10 large-11 sensor__info" ng-click="sensors__metadatarow3 = ! sensors__metadatarow3">
-                    <p class="inline priority-tag-circ warn-priority" aria-label="Medium Priority"></p>
-                    <p class="inline sensor__title">Fan Speed 3</p>
-                    <p class="inline sensor__reading">1200 <span>rpms</span></p>
-                    <p class="inline float-right sensor__warning-label">warning</p>
-                </div>
-                <div class="column small-2 large-1">
-                    <button class="accord-trigger" ng-class="{'active': sensors__metadatarow3}"
-                            ng-click="sensors__metadatarow3 = ! sensors__metadatarow3"></button>
-                </div>
-            </div>
-            <div class="row sensors__metadata-row" ng-class="{'active': sensors__metadatarow3}">
-                <div class="column small-12">
-                    <div class="threshold-chart__wrapper">
-                        <span class="threshold__label low">Low</span>
-                        <div class="threshold-chart">
-                            <span class="threshold__marker thresh__low-warn" style="left: 15%;"><span class="threshold__value">1200 RPMs</span></span>
-                            <span class="threshold thresh__low-critical"></span>
-                            <span class="threshold thresh__low-warn"></span>
-                            <span class="threshold thresh__normal"></span>
-                            <span class="threshold thresh__high-warn"></span>
-                            <span class="threshold thresh__high-critical"></span>
-                        </div>
-                        <span class="threshold__label high">High</span>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </section>
-    <paginate ng-include="paginate"></paginate>
-</div> <!-- end event log -->
diff --git a/app/overview/controllers/sensors-controller.js b/app/overview/controllers/sensors-controller.js
deleted file mode 100644
index 97d5d3c..0000000
--- a/app/overview/controllers/sensors-controller.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Controller for log
- *
- * @module app/overview
- * @exports logController
- * @name logController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('sensorsController', [
-            '$scope',
-            '$log',
-            '$window', 
-            'APIUtils', 
-            'dataService',
-            function($scope, $log, $window, APIUtils, dataService, userModel){
-                $scope.dataService = dataService;
-
-                $scope.dropdown_selected = false;
-
-            }
-        ]
-    );
-
-})(angular);
diff --git a/app/overview/controllers/sensors-overview-controller.html b/app/overview/controllers/sensors-overview-controller.html
deleted file mode 100644
index 1b86478..0000000
--- a/app/overview/controllers/sensors-overview-controller.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<div id="sensors-overview">
-    <div class="row column">
-        <h1>Sensors Data</h1>
-    </div>
-    <section class="row column">
-        <div class="page-header">
-            <h2 class="inline h4">Sensors present in the system</h2>
-            <button class="inline btn-export float-right">Export</button>
-        </div>
-    </section>
-
-    <section class="row column">
-        <!-- search -->
-        <div class="content__search">
-            <label for="content__search-input">Event Log Search</label>
-            <input id="content__search-input" type="text" placeholder="Filter issues"/>
-            <input id="content__search-submit" type="submit" class="btn btn-secondary" value="Submit"/>
-        </div>
-        <div class="toggle-filter">
-            <button class="inline first btn-primary">All
-            </button>
-            <button class="inline " ng-click="togglehigh = !togglehigh"
-                    ng-class="togglehigh ? 'btn-primary' : 'btn-secondary'">Critical
-            </button>
-            <button class="inline" ng-click="togglemed = !togglemed"
-                    ng-class="togglemed ? 'btn-primary' : 'btn-secondary'">Warning
-            </button>
-            <button class="inline last" ng-click="togglelow = !togglelow"
-                    ng-class="togglelow ? 'btn-primary' : 'btn-secondary'">Normal
-            </button>
-        </div>
-
-    </section> <!-- end search -->
-
-    <section id="sensor-categories" class="row column">
-        <div class="row column header-row">
-            <div class="column large-12 header__actions-bar">
-                <p class="inline sensor__heading sensor__category">Sensors</p>
-                <p class="inline float-right sensor__heading right">State</p>
-            </div>
-        </div>
-        <a class="sensor__group" href="">All Sensors (50)</a>
-        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Temperature (20)</a>
-        <a class="sensor__group" href="#/overview/sensors"> <span class="inline priority-tag-circ high-priority" aria-label="High Priority"></span>Fan Speed (15) <p class="inline float-right sensor__critical-label">Critical</p></a>
-        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Altitude (1)</a>
-        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Voltage (6)</a>
-        <a class="sensor__group" href=""><span class="inline priority-tag-circ warn-priority" aria-label="Warning Priority"></span>Current (5) <p class="inline float-right sensor__warning-label">Warning</p></a>
-        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority"></span>Power (3)</a>
-    </section>
-</div>
\ No newline at end of file
diff --git a/app/overview/controllers/sensors-overview-controller.js b/app/overview/controllers/sensors-overview-controller.js
deleted file mode 100644
index e3cfe6f..0000000
--- a/app/overview/controllers/sensors-overview-controller.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Controller for log
- *
- * @module app/overview
- * @exports logController
- * @name logController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('sensorsOverviewController', [
-            '$scope', 
-            '$window', 
-            'APIUtils', 
-            'dataService',
-            function($scope, $window, APIUtils, dataService, userModel){
-                $scope.dataService = dataService;
-            }
-        ]
-    );
-
-})(angular);
diff --git a/app/overview/controllers/system-overview-controller.js b/app/overview/controllers/system-overview-controller.js
index e3841cb..4992b1e 100644
--- a/app/overview/controllers/system-overview-controller.js
+++ b/app/overview/controllers/system-overview-controller.js
@@ -1,5 +1,5 @@
 /**
- * Controller for system overview
+ * Controller for systemOverview
  *
  * @module app/overview
  * @exports systemOverviewController
@@ -19,8 +19,10 @@
             'dataService',
             function($scope, $window, APIUtils, dataService, userModel){
                 $scope.dataService = dataService;
+
+                $scope.dropdown_selected = false;
             }
         ]
     );
 
-})(angular);
+})(angular);
\ No newline at end of file
diff --git a/app/overview/controllers/unit-id-controller.html b/app/overview/controllers/unit-id-controller.html
deleted file mode 100644
index 6e6ba72..0000000
--- a/app/overview/controllers/unit-id-controller.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<div id="uid-switch">
-    <div class="row column">
-        <h1>Unit ID Indicator</h1>
-    </div>
-
-    <div class="row column">
-        <h2 class="h4">Unit ID control</h2>
-    </div>
-
-    <div class="row column">
-        <div class="btm-border-grey">
-            <div class="toggle inline" ng-init="indicatorState = 'off'">
-                <input id="toggle__switch-round"
-                       class="toggle-switch toggle-switch__round-flat"
-                       type="checkbox"
-                       tabindex="0"
-                       ng-click="indicatorState = { 'on': 'off', 'off':'on'}[indicatorState]"
-                       >
-                <label for="toggle__switch-round" tabindex="0">Unit ID indicator is <span class="uid-switch__status">{{indicatorState}}</span></label>
-            </div>
-            <div class="uid-switch__label inline">
-                <p>Unit ID indicator is <span class="uid-switch__status">{{indicatorState}}</span></p>
-                <p>Control unit indicator to identify server unit.</p>
-            </div>
-        </div>
-    </div>
-</div>
\ No newline at end of file
diff --git a/app/overview/controllers/unit-id-controller.js b/app/overview/controllers/unit-id-controller.js
deleted file mode 100644
index c59f411..0000000
--- a/app/overview/controllers/unit-id-controller.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Controller for unit Id
- *
- * @module app/overview
- * @exports unitIdController
- * @name unitIdController
- * @version 0.1.0
- */
-
-window.angular && (function (angular) {
-    'use strict';
-
-    angular
-        .module('app.overview')
-        .controller('unitIdController', [
-            '$scope', 
-            '$window', 
-            'APIUtils', 
-            'dataService',
-            function($scope, $window, APIUtils, dataService, userModel){
-                $scope.dataService = dataService;
-            }
-        ]
-    );
-
-})(angular);
