diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
index cbc4262..ccd9774 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
@@ -25,7 +25,7 @@
  */
 public interface FlowRuleProvider extends Provider {
 
-    static final int POLL_INTERVAL = 1;
+    static final int POLL_INTERVAL = 2;
 
     /**
      * Instructs the provider to apply the specified flow rules to their
diff --git a/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java b/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java
index 5796c65..ca0862c 100644
--- a/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java
+++ b/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java
@@ -429,7 +429,7 @@
                 String label = "";
                 if (load.rate() > 0) {
                     hasTraffic = true;
-                    label = load.toString();
+                    label = load.latest() + " bytes";
                 }
                 labels.add(label);
             }
diff --git a/web/gui/src/main/webapp/img/bgpSpeaker.png b/web/gui/src/main/webapp/img/bgpSpeaker.png
new file mode 100644
index 0000000..6362381
--- /dev/null
+++ b/web/gui/src/main/webapp/img/bgpSpeaker.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/node.png b/web/gui/src/main/webapp/img/node.png
new file mode 100644
index 0000000..24b2bb4
--- /dev/null
+++ b/web/gui/src/main/webapp/img/node.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/device.png b/web/gui/src/main/webapp/img/orig/device.png
new file mode 100644
index 0000000..d608153
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/device.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/host.png b/web/gui/src/main/webapp/img/orig/host.png
new file mode 100644
index 0000000..cacde17
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/host.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/opt.png b/web/gui/src/main/webapp/img/orig/opt.png
new file mode 100644
index 0000000..2f2c88e
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/opt.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/pkt.png b/web/gui/src/main/webapp/img/orig/pkt.png
new file mode 100644
index 0000000..1b1d5a3
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/pkt.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/roadm.png b/web/gui/src/main/webapp/img/orig/roadm.png
new file mode 100644
index 0000000..75ff527
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/roadm.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/switch.png b/web/gui/src/main/webapp/img/orig/switch.png
new file mode 100644
index 0000000..d608153
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/switch.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/orig/us-map.png b/web/gui/src/main/webapp/img/orig/us-map.png
new file mode 100644
index 0000000..96e84d6
--- /dev/null
+++ b/web/gui/src/main/webapp/img/orig/us-map.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/router.png b/web/gui/src/main/webapp/img/router.png
new file mode 100644
index 0000000..8757d56
--- /dev/null
+++ b/web/gui/src/main/webapp/img/router.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/win8/bgpSpeaker.png b/web/gui/src/main/webapp/img/win8/bgpSpeaker.png
new file mode 100644
index 0000000..6362381
--- /dev/null
+++ b/web/gui/src/main/webapp/img/win8/bgpSpeaker.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/win8/host.png b/web/gui/src/main/webapp/img/win8/host.png
new file mode 100644
index 0000000..0f4595b
--- /dev/null
+++ b/web/gui/src/main/webapp/img/win8/host.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/win8/node.png b/web/gui/src/main/webapp/img/win8/node.png
new file mode 100644
index 0000000..24b2bb4
--- /dev/null
+++ b/web/gui/src/main/webapp/img/win8/node.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/win8/roadm.png b/web/gui/src/main/webapp/img/win8/roadm.png
new file mode 100644
index 0000000..5129683
--- /dev/null
+++ b/web/gui/src/main/webapp/img/win8/roadm.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/win8/router.png b/web/gui/src/main/webapp/img/win8/router.png
new file mode 100644
index 0000000..8757d56
--- /dev/null
+++ b/web/gui/src/main/webapp/img/win8/router.png
Binary files differ
diff --git a/web/gui/src/main/webapp/img/win8/switch-50.png b/web/gui/src/main/webapp/img/win8/switch-50.png
new file mode 100644
index 0000000..89bd78a
--- /dev/null
+++ b/web/gui/src/main/webapp/img/win8/switch-50.png
Binary files differ
diff --git a/web/gui/src/main/webapp/topo2.js b/web/gui/src/main/webapp/topo2.js
index bffa191..e6bea48 100644
--- a/web/gui/src/main/webapp/topo2.js
+++ b/web/gui/src/main/webapp/topo2.js
@@ -140,6 +140,7 @@
         P: togglePorts,
         U: unpin,
         R: resetZoomPan,
+        H: toggleHover,
         esc: handleEscape
     };
 
@@ -176,7 +177,7 @@
         onosOrder = [],
         oiBox,
         oiShowMaster = false,
-
+        hoverEnabled = false,
         portLabelsOn = false;
 
     // D3 selections
@@ -310,6 +311,10 @@
         });
     }
 
+    function toggleHover(view) {
+        hoverEnabled = !hoverEnabled;
+    }
+
     function togglePorts(view) {
         view.alert('togglePorts() callback')
     }
@@ -1077,6 +1082,8 @@
         linkLabel = linkLabelG.selectAll('.linkLabel')
             .data(data, function (d) { return d.id; });
 
+        linkLabel.text(function (d) { return d.label; });
+
         entering = linkLabel.enter().append('g')
             .classed('linkLabel', true)
             .attr('id', function (d) { return d.id; });
@@ -1973,8 +1980,7 @@
     }
 
     function trafficHover() {
-        return false;
-        //return showTrafficOnHover.classed('active');
+        return hoverEnabled;
     }
     function toggleTrafficHover() {
         showTrafficOnHover.classed('active', !trafficHover());
