diff --git a/app/firmware/controllers/bmc-controller.js b/app/firmware/controllers/bmc-controller.js
index 42a4f18..78e87a7 100644
--- a/app/firmware/controllers/bmc-controller.js
+++ b/app/firmware/controllers/bmc-controller.js
@@ -6,20 +6,19 @@
  * @name bmcController
  */
 
-window.angular && (function (angular) {
-    'use strict';
+window.angular && (function(angular) {
+  'use strict';
 
-    angular
-        .module('app.firmware')
-        .controller('bmcController', [
-            '$scope',
-            '$window',
-            'APIUtils',
-            'dataService',
-            function($scope, $window, APIUtils, dataService){
-                $scope.dataService = dataService;
-            }
-        ]
-    );
+  angular
+    .module('app.firmware')
+    .controller('bmcController', [
+      '$scope',
+      '$window',
+      'APIUtils',
+      'dataService',
+      function($scope, $window, APIUtils, dataService) {
+        $scope.dataService = dataService;
+      }
+    ]);
 
 })(angular);
diff --git a/app/firmware/controllers/server-controller.js b/app/firmware/controllers/server-controller.js
index 5d5da4a..2b1a673 100644
--- a/app/firmware/controllers/server-controller.js
+++ b/app/firmware/controllers/server-controller.js
@@ -6,20 +6,19 @@
  * @name serverController
  */
 
-window.angular && (function (angular) {
-    'use strict';
+window.angular && (function(angular) {
+  'use strict';
 
-    angular
-        .module('app.firmware')
-        .controller('serverController', [
-            '$scope',
-            '$window',
-            'APIUtils',
-            'dataService',
-            function($scope, $window, APIUtils, dataService){
-                $scope.dataService = dataService;
-            }
-        ]
-    );
+  angular
+    .module('app.firmware')
+    .controller('serverController', [
+      '$scope',
+      '$window',
+      'APIUtils',
+      'dataService',
+      function($scope, $window, APIUtils, dataService) {
+        $scope.dataService = dataService;
+      }
+    ]);
 
 })(angular);
diff --git a/app/firmware/index.js b/app/firmware/index.js
index 9ac623b..3e4189c 100644
--- a/app/firmware/index.js
+++ b/app/firmware/index.js
@@ -5,33 +5,33 @@
  * @exports app/firmware/index
  */
 
-window.angular && (function (angular) {
-    'use strict';
+window.angular && (function(angular) {
+  'use strict';
 
-    angular
-        .module('app.firmware', [
-            'ngRoute',
-            'app.constants',
-            'app.common.services'
-        ])
-        // Route configuration
-        .config(['$routeProvider', function ($routeProvider) {
-            $routeProvider
-                .when('/firmware/bmc', {
-                    'template': require('./controllers/bmc-controller.html'),
-                    'controller': 'bmcController',
-                    authenticated: true
-                })
-                .when('/firmware/server', {
-                    'template': require('./controllers/server-controller.html'),
-                    'controller': 'serverController',
-                    authenticated: true
-                })
-                .when('/firmware', {
-                    'template': reqire('./controllers/bmc-controller.html'),
-                    'controller': 'bmcController',
-                    authenticated: true
-                });
-        }]);
+  angular
+    .module('app.firmware', [
+      'ngRoute',
+      'app.constants',
+      'app.common.services'
+    ])
+    // Route configuration
+    .config(['$routeProvider', function($routeProvider) {
+      $routeProvider
+        .when('/firmware/bmc', {
+          'template': require('./controllers/bmc-controller.html'),
+          'controller': 'bmcController',
+          authenticated: true
+        })
+        .when('/firmware/server', {
+          'template': require('./controllers/server-controller.html'),
+          'controller': 'serverController',
+          authenticated: true
+        })
+        .when('/firmware', {
+          'template': reqire('./controllers/bmc-controller.html'),
+          'controller': 'bmcController',
+          authenticated: true
+        });
+    }]);
 
 })(window.angular);
