diff --git a/app/index.js b/app/index.js
index 71d7618..d9bb84f 100644
--- a/app/index.js
+++ b/app/index.js
@@ -66,7 +66,6 @@
 import server_led_controller from './server-control/controllers/server-led-controller.js';
 
 import server_health_index from './server-health/index.js';
-import inventory_controller from './server-health/controllers/inventory-controller.js';
 import inventory_overview_controller from './server-health/controllers/inventory-overview-controller.js';
 import log_controller from './server-health/controllers/log-controller.js';
 import sensors_controller from './server-health/controllers/sensors-controller.js';
diff --git a/app/server-health/controllers/inventory-controller.html b/app/server-health/controllers/inventory-controller.html
deleted file mode 100644
index 7a1af65..0000000
--- a/app/server-health/controllers/inventory-controller.html
+++ /dev/null
@@ -1,567 +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-primary" value="Submit"/>
-        </div>
-    </section> <!-- end filter -->
-    <section class="row column">
-        <div class="back-link">
-            <a href="#/server-health/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">
-	            <p class="h2">CPU cores (6)</p>
-            </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 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 small-12 large-3">
-                        <p class="content-label">Manufacturer</p>
-                        <p class="courier-bold">IBM</p>
-                    </div>
-                    <div class="column small-12 large-3">
-                        <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 Replaceable</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 column">
-		            <div class="column small-12 large-3 hide-for-medium-only">
-                        &nbsp;
-                    </div>
-		            <div class="column large-9">
-			            <p class="content-label">Unit Indicator</p><br />
-			            <div class="toggle inline">
-			                <input id="toggle__switch-round"
-					                class="toggle-switch toggle-switch__round-flat"
-					                type="checkbox"
-					                tabindex="0"
-					                ng-click="toggleLED()"
-					                ng-checked="dataService.LED_state == 'on'"
-					                ng-disabled="dataService.server_unreachable">
-			                <label for="toggle__switch-round" tabindex="0" class="no-margin">Unit ID indicator is <span class="uid-switch__status">{{dataService.LED_state}}</span></label>
-	                    </div>
-			        </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 event__description">
-                        org.open_power.Error.Host.Event.Event.Cras.amet
-                    </p>
-                    <p class="column small-12 large-2">
-                        <a href="#/server-health/event-log"> 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 Replaceable</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 column">
-		            <div class="column small-12 large-3 hide-for-medium-only">
-			            &nbsp;
-		            </div>
-		            <div class="column large-9">
-			            <p class="content-label">Unit Indicator</p><br />
-			            <div class="toggle inline">
-				            <input id="toggle__switch-round"
-						            class="toggle-switch toggle-switch__round-flat"
-						            type="checkbox"
-						            tabindex="0"
-						            ng-click="toggleLED()"
-						            ng-checked="dataService.LED_state == 'on'"
-						            ng-disabled="dataService.server_unreachable">
-				            <label for="toggle__switch-round" tabindex="0" class="no-margin">Unit ID indicator is <span class="uid-switch__status">{{dataService.LED_state}}</span></label>
-			            </div>
-		            </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 event__description">
-                        org.open_power.Error.Host.Event.Event.Cras.amet
-                    </p>
-                    <p class="column small-12 large-2">
-                        <a href="#/server-health/event-log"> View event log</a>
-                    </p>
-                </div>
-            </div>
-        </div>
-
-	    <!-- Inventory Item -->
-	    <div class="row column accord-row"
-			    ng-class="{'active': inventory__metadatarow9, 'selected': inventory__selected}">
-		    <div class="row column" ng-click="inventory__metadatarow9 = ! inventory__metadatarow9">
-			    <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__metadatarow9}"></button>
-		    </div>
-		    <div class="row column inventory__metadata-row" ng-class="{'active': inventory__metadatarow9}">
-			    <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 Replaceable</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 column">
-				    <div class="column small-12 large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column large-9">
-					    <p class="content-label">Unit Indicator</p><br />
-					    <div class="toggle inline">
-						    <input id="toggle__switch-round"
-								    class="toggle-switch toggle-switch__round-flat"
-								    type="checkbox"
-								    tabindex="0"
-								    ng-click="toggleLED()"
-								    ng-checked="dataService.LED_state == 'on'"
-								    ng-disabled="dataService.server_unreachable">
-						    <label for="toggle__switch-round" tabindex="0" class="no-margin">Unit ID indicator is <span class="uid-switch__status">{{dataService.LED_state}}</span></label>
-					    </div>
-				    </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 event__description">
-					    org.open_power.Error.Host.Event.Event.Cras.amet
-				    </p>
-				    <p class="column small-12 large-2">
-					    <a href="#/server-health/event-log"> 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 Replaceable</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 column">
-		            <div class="column small-12 large-3 hide-for-medium-only">
-			            &nbsp;
-		            </div>
-		            <div class="column large-9">
-			            <p class="content-label">Unit Indicator</p><br />
-			            <div class="toggle inline">
-				            <input id="toggle__switch-round"
-						            class="toggle-switch toggle-switch__round-flat"
-						            type="checkbox"
-						            tabindex="0"
-						            ng-click="toggleLED()"
-						            ng-checked="dataService.LED_state == 'on'"
-						            ng-disabled="dataService.server_unreachable">
-				            <label for="toggle__switch-round" tabindex="0" class="no-margin">Unit ID indicator is <span class="uid-switch__status">{{dataService.LED_state}}</span></label>
-			            </div>
-		            </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 event__description">
-                        org.open_power.Error.Host.Event.Event.Cras.amet
-                    </p>
-                    <p class="column small-12 large-2">
-                        <a href="#/server-health/event-log"> 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 Replaceable</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 column">
-				    <div class="column small-12 large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column large-9">
-					    <p class="content-label">Unit Indicator</p><br />
-					    <div class="toggle inline">
-						    <input  title="toggle-switch"
-								    class="toggle-switch toggle-switch__round-flat"
-								    type="checkbox"
-								    tabindex="0"
-								    ng-click="toggleLED()"
-								    ng-checked="dataService.LED_state == 'on'"
-								    ng-disabled="dataService.server_unreachable">
-						    <label for="toggle__switch-round" tabindex="0" class="no-margin">Unit ID indicator is <span class="uid-switch__status">{{dataService.LED_state}}</span></label>
-					    </div>
-				    </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 event__description">
-					    org.open_power.Error.Host.Event.Event.Cras.amet
-				    </p>
-				    <p class="column small-12 large-2">
-					    <a href="#/server-health/event-log"> 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 Replaceable</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 column">
-				    <div class="column small-12 large-3 hide-for-medium-only">
-					    &nbsp;
-				    </div>
-				    <div class="column large-9">
-					    <p class="content-label">Unit Indicator</p><br />
-					    <div class="toggle inline">
-						    <input title="toggle-switch"
-								    class="toggle-switch toggle-switch__round-flat"
-								    type="checkbox"
-								    tabindex="0"
-								    ng-click="toggleLED()"
-								    ng-checked="dataService.LED_state == 'on'"
-								    ng-disabled="dataService.server_unreachable">
-						    <label for="toggle__switch-round" tabindex="0" class="no-margin">Unit ID indicator is <span class="uid-switch__status">{{dataService.LED_state}}</span></label>
-					    </div>
-				    </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 event__description">
-					    org.open_power.Error.Host.Event.Event.Cras.amet
-				    </p>
-				    <p class="column small-12 large-2">
-					    <a href="#/server-health/event-log"> 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/server-health/controllers/inventory-controller.js b/app/server-health/controllers/inventory-controller.js
deleted file mode 100644
index c02e77d..0000000
--- a/app/server-health/controllers/inventory-controller.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Controller for server
- *
- * @module app/serverHealth
- * @exports inventoryController
- * @name inventoryController
- */
-
-window.angular && (function(angular) {
-  'use strict';
-
-  angular.module('app.serverHealth').controller('inventoryController', [
-    '$scope', '$window', 'APIUtils', 'dataService',
-    function($scope, $window, APIUtils, dataService) {
-      $scope.dataService = dataService;
-
-      // Force to top of page when viewing single group
-      $window.scrollTo(0, 0);
-    }
-  ]);
-})(angular);
diff --git a/app/server-health/index.js b/app/server-health/index.js
index 7e21052..64e2255 100644
--- a/app/server-health/index.js
+++ b/app/server-health/index.js
@@ -36,11 +36,6 @@
                 'controller': 'inventoryOverviewController',
                 authenticated: true
               })
-              .when('/server-health/inventory', {
-                'template': require('./controllers/inventory-controller.html'),
-                'controller': 'inventoryController',
-                authenticated: true
-              })
               .when('/server-health/sensors-overview', {
                 'template':
                     require('./controllers/sensors-overview-controller.html'),
