diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java
index 652116c..5d97504 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java
@@ -40,6 +40,10 @@
     private static final String PROCESSOR_DATA_RESP = "processorDataResponse";
     private static final String PROCESSORS = "processors";
 
+    private static final String OBSERVER = "observer";
+    private static final String DIRECTOR = "director";
+    private static final String ADVISOR = "advisor";
+
     private static final String ID = "id";
     private static final String TYPE = "type";
     private static final String PRIORITY = "priority";
@@ -58,7 +62,7 @@
         return ImmutableSet.of(new ProcessorDataRequest());
     }
 
-    // handler for link table requests
+    // handler for packet processor table requests
     private final class ProcessorDataRequest extends TableRequestHandler {
         private ProcessorDataRequest() {
             super(PROCESSOR_DATA_REQ, PROCESSOR_DATA_RESP, PROCESSORS);
@@ -70,11 +74,6 @@
         }
 
         @Override
-        protected String defaultColumnId() {
-            return ID;
-        }
-
-        @Override
         protected TableModel createTableModel() {
             TableModel tm = super.createTableModel();
             tm.setFormatter(AVG_MS, new NumberFormatter());
@@ -93,12 +92,11 @@
                     .cell(PRIORITY, processorPriority(entry.priority()))
                     .cell(PROCESSOR, entry.processor().getClass().getName())
                     .cell(PACKETS, entry.invocations())
-                    .cell(AVG_MS, entry.averageNanos() / NANOS_IN_MS);
+                    .cell(AVG_MS, (double) entry.averageNanos() / NANOS_IN_MS);
         }
 
         private String processorType(int p) {
-            return p > DIRECTOR_MAX ? "observer" :
-                    p > ADVISOR_MAX ? "director" : "observer";
+            return p > DIRECTOR_MAX ? OBSERVER : p > ADVISOR_MAX ? DIRECTOR : ADVISOR;
         }
 
         private int processorPriority(int p) {
diff --git a/web/gui/src/main/webapp/app/view/processor/processor.css b/web/gui/src/main/webapp/app/view/processor/processor.css
index f4c22aa..12cf637 100644
--- a/web/gui/src/main/webapp/app/view/processor/processor.css
+++ b/web/gui/src/main/webapp/app/view/processor/processor.css
@@ -44,10 +44,6 @@
     text-align: right;
 }
 
-#ov-processor td.type {
-    text-align: center;
-}
-
 #ov-processor tr.no-data td {
     text-align: center;
 }
diff --git a/web/gui/src/main/webapp/app/view/processor/processor.html b/web/gui/src/main/webapp/app/view/processor/processor.html
index 24e126e..1c61504 100644
--- a/web/gui/src/main/webapp/app/view/processor/processor.html
+++ b/web/gui/src/main/webapp/app/view/processor/processor.html
@@ -16,7 +16,7 @@
                  icon icon-id="processorTable" icon-size="36"></div>
 
             <div class="active"
-                 icon icon-id="requestTable" icon-size="36"
+                 icon icon-id="requestTable" icon-size="36"git sta
                  tooltip tt-msg="requestTip"
                  ng-click="nav('request')"></div>
             -->
@@ -30,11 +30,11 @@
         <div class="table-header" onos-sortable-header>
             <table>
                 <tr>
-                    <td class="type" colId="type" sortable col-width="80px">Type </td>
                     <td class="number" colId="priority" sortable col-width="80px">Priority </td>
+                    <td colId="type" sortable col-width="80px">Type </td>
                     <td colId="processor" sortable col-width="500px">Class </td>
                     <td class="number"  colId="packets" sortable col-width="100px">Packets </td>
-                    <td class="number" colId="avgMillis" sortable col-width="80px">Average (ms) </td>
+                    <td class="number" colId="avgMillis" sortable col-width="100px">Average (ms) </td>
                 </tr>
             </table>
         </div>
@@ -49,8 +49,8 @@
 
                 <tr ng-repeat="processor in tableData track by $index"
                     ng-repeat-complete row-id="{{processor.id}}">
-                    <td class="type">{{processor.type}}</td>
                     <td class="number">{{processor.priority}}</td>
+                    <td>{{processor.type}}</td>
                     <td>{{processor.processor}}</td>
                     <td class="number">{{processor.packets}}</td>
                     <td class="number">{{processor.avgMillis}}</td>
