diff --git a/app/common/directives/log-event.html b/app/common/directives/log-event.html
index 08efcf1..be7b5a0 100644
--- a/app/common/directives/log-event.html
+++ b/app/common/directives/log-event.html
@@ -15,7 +15,7 @@
              <label class="control-check">
                  <input type="checkbox" name="events__check" ng-click="event.selected= ! event.selected"
                         ng-checked="event.selected"/>
-                 <span class="control__indicator accessible-text">select log event</span>
+                 <span class="control__indicator"></span>
              </label>
          </div>
          <div class="column small-9 large-10 event-log__event-info"
@@ -29,8 +29,8 @@
                  <p class="inline event__description">{{event.Severity}}</p>
              </div>
          <div class="column small-1 large-1">
-             <span class="button accord-trigger" ng-class="{'active': event.meta}"
-                     ng-click="event.meta = ! event.meta"></span>
+             <button class="accord-trigger" ng-class="{'active': event.meta}"
+                     ng-click="event.meta = ! event.meta"></button>
          </div>
         </div>
      <div class="row event__metadata-row" ng-class="{'active': event.meta}">
@@ -43,12 +43,17 @@
                      <button class="btn-meta-copy" clipboard text="event.additional_data" on-copied="copySuccess(event)" on-error="copyfailed(err)">
                         <img class="event__icon" src="assets/images/icon-copy.svg" alt=""/><span ng-if="!event.copied">Copy</span><span ng-if="event.copied">Copied</span>
                      </button>
-                     <button class="btn-delete" ng-click="event.confirm= ! event.confirm"><img
+                     <button
+                             class="btn-delete"
+                             ng-class="{'disabled': multiSelected}"
+                             ng-click="event.confirm= ! event.confirm"
+                             ng-disabled="multiSelected">
+                             <img
                              class="event__icon"
                              src="assets/images/icon-trashcan.svg"
                              alt=""/>Delete
                      </button>
-                     <button class="btn-resolve" ng-class="{'disabled': (event.Resolved == 1)}" ng-click="resolveEvent(event)" ng-disabled="event.Resolved == 1"><img class="event__icon" src="assets/images/icon-check.svg" alt=""/>Resolved</button>
+                     <button class="btn-resolve" ng-class="{'disabled': (event.Resolved == 1 || multiSelected)}" ng-click="resolveEvent(event)" ng-disabled="event.Resolved == 1 || multiSelected"><img class="event__icon" src="assets/images/icon-checklist.svg" alt=""/>Resolved</button>
                  </div>
                  <div class="event__related" ng-show="event.related_items.length">
                      <p class="inline event__related-label">Related items:</p>
@@ -57,4 +62,4 @@
              </div>
          </div>
      </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/app/common/directives/log-event.js b/app/common/directives/log-event.js
index ae4970d..51bb5dd 100644
--- a/app/common/directives/log-event.js
+++ b/app/common/directives/log-event.js
@@ -9,7 +9,8 @@
                 'templateUrl': 'common/directives/log-event.html',
                 'scope': {
                    'event': '=',
-                   'tmz': '='
+                   'tmz': '=',
+                   'multiSelected': '='
                 },
                 'controller': ['$rootScope', '$scope','dataService', '$location', '$timeout', function($rootScope, $scope, dataService, $location, $timeout){
                     $scope.dataService = dataService;
diff --git a/app/common/directives/log-filter.js b/app/common/directives/log-filter.js
index c9ac1d0..81abc7d 100644
--- a/app/common/directives/log-filter.js
+++ b/app/common/directives/log-filter.js
@@ -25,7 +25,11 @@
                         $scope.selectedSeverity[severity] = !$scope.selectedSeverity[severity];
 
                         if(['high', 'medium', 'low'].indexOf(severity) > -1){
-                            if($scope.selectedSeverity[severity] == false){
+                            if($scope.selectedSeverity[severity] == false &&
+                               (!$scope.selectedSeverity.low &&
+                                !$scope.selectedSeverity.medium &&
+                                !$scope.selectedSeverity.high
+                               )){
                                 $scope.selectedSeverity.all = true;
                                 return;
                             }
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 408e42f..bec96b1 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -425,6 +425,18 @@
                       var tempKeyParts = [];
                       var order = 0;
 
+                      function getScaledValue(value, scale){
+                        scale = scale + "";
+                        var power = parseInt(scale.replace(/[\s\t\+\-]/g,''),10);
+
+                        if(scale.indexOf("+") > -1){
+                          value = value * Math.pow(10, power);
+                        }else if(scale.indexOf("-") > -1){
+                          value = value / Math.pow(10, power);
+                        }
+                        return value;
+                      }
+
                       function getSensorStatus(reading){
                         var severityFlags = {critical: false, warning: false, normal: false}, severityText = '', order = 0;
 
@@ -483,6 +495,8 @@
                             return prev + " " + el;
                           });
 
+                          content.data[key].Value = getScaledValue(content.data[key].Value, content.data[key].Scale);
+
                           sensorData.push(Object.assign({
                             path: key,
                             selected: false,
diff --git a/app/common/styles/base/mixins.scss b/app/common/styles/base/mixins.scss
index 79b0f34..6067a0e 100644
--- a/app/common/styles/base/mixins.scss
+++ b/app/common/styles/base/mixins.scss
@@ -36,7 +36,7 @@
 }
 
 @mixin fontCourierBold {
-  font-family: "Courier New", Helvetica, monospace, arial, sans-serif;
+  font-family: "Courier New", Helvetica, arial, sans-serif;
   font-weight: 700;
 }
 
diff --git a/app/common/styles/base/typography.scss b/app/common/styles/base/typography.scss
index 64f5e3c..8dc33c0 100644
--- a/app/common/styles/base/typography.scss
+++ b/app/common/styles/base/typography.scss
@@ -54,4 +54,4 @@
   font-family: "Courier New", Helvetica, arial, sans-serif;
   font-weight: 700;
   margin-bottom: 0;
-}
+}
\ No newline at end of file
diff --git a/app/common/styles/elements/index.scss b/app/common/styles/elements/index.scss
index c9e29d9..677a4ba 100644
--- a/app/common/styles/elements/index.scss
+++ b/app/common/styles/elements/index.scss
@@ -1,15 +1,13 @@
-
 @import "toggle-switch";
 @import "toggle-filter";
 @import "status";
-@import "tags";
 @import "alerts";
 @import "inline-confirm";
 @import "accordion";
 @import "loader";
 @import "content-search";
 @import "paginate";
-@import "thresholds";
+@import "tags";
 @import "export";
 @import "modals";
-@import "quicklinks";
+@import "quicklinks";
\ No newline at end of file
