diff --git a/web/gui/src/test/_karma/ev/traffic/ev_18_showTraffic_primary.json b/web/gui/src/test/_karma/ev/traffic/ev_18_showTraffic_primary.json
index a252d51..7eafcf1 100644
--- a/web/gui/src/test/_karma/ev/traffic/ev_18_showTraffic_primary.json
+++ b/web/gui/src/test/_karma/ev/traffic/ev_18_showTraffic_primary.json
@@ -4,7 +4,7 @@
   "payload": {
     "paths": [
       {
-        "class": "primary",
+        "class": "primary animated",
         "links": [
           "0E:2A:69:30:13:86/-1/0-of:0000ffffffff0003/101",
           "0E:2A:69:30:13:aa/-1/0-of:0000ffffffff0008/103",
@@ -19,7 +19,7 @@
         ]
       },
       {
-        "class": "primary optical",
+        "class": "primary optical animated",
         "links": [
           "of:0000ffffffffff08/13-of:0000ffffffffff03/17",
           "of:0000ffffffffff08/99-of:0000ffffffffff04/65535"
diff --git a/web/gui/src/test/_karma/ev/traffic/ev_19_showTraffic_secondary.json b/web/gui/src/test/_karma/ev/traffic/ev_19_showTraffic_secondary.json
index 4483f50..1f60c72 100644
--- a/web/gui/src/test/_karma/ev/traffic/ev_19_showTraffic_secondary.json
+++ b/web/gui/src/test/_karma/ev/traffic/ev_19_showTraffic_secondary.json
@@ -4,7 +4,7 @@
   "payload": {
     "paths": [
       {
-        "class": "secondary",
+        "class": "secondary animated",
         "links": [
           "0E:2A:69:30:13:86/-1/0-of:0000ffffffff0003/101",
           "0E:2A:69:30:13:aa/-1/0-of:0000ffffffff0008/103",
@@ -19,7 +19,7 @@
         ]
       },
       {
-        "class": "secondary optical",
+        "class": "secondary optical animated",
         "links": [
           "of:0000ffffffffff08/13-of:0000ffffffffff03/17",
           "of:0000ffffffffff08/99-of:0000ffffffffff04/65535"
diff --git a/web/gui/src/test/_karma/ev/traffic/ev_20_showTraffic_allMix.json b/web/gui/src/test/_karma/ev/traffic/ev_20_showTraffic_allMix.json
index d6fb9b5..0526274 100644
--- a/web/gui/src/test/_karma/ev/traffic/ev_20_showTraffic_allMix.json
+++ b/web/gui/src/test/_karma/ev/traffic/ev_20_showTraffic_allMix.json
@@ -4,14 +4,14 @@
   "payload": {
     "paths": [
       {
-        "class": "primary",
+        "class": "primary animated",
         "links": [
           "of:0000ffffffff0008/21-of:0000ffffffff0003/1"
         ],
         "labels": ["primary"]
       },
       {
-        "class": "secondary",
+        "class": "secondary animated",
         "links": [
           "of:0000ffffffff0003/9-of:0000ffffffff0007/2",
           "of:0000ffffffff0008/4-of:0000ffffffff0007/3",
@@ -21,14 +21,14 @@
         "labels": ["secondary", "secondo", "deux", "zwei"]
       },
       {
-        "class": "secondary optical",
+        "class": "secondary optical animated",
         "links": [
           "of:0000ffffffffff08/99-of:0000ffffffffff04/65535"
         ],
         "labels": ["secondary optical"]
       },
       {
-        "class": "primary optical",
+        "class": "primary optical animated",
         "links": [
           "of:0000ffffffffff08/13-of:0000ffffffffff03/17"
         ],
diff --git a/web/gui/src/test/_karma/mockserver.js b/web/gui/src/test/_karma/mockserver.js
index e861e83..23b468b 100644
--- a/web/gui/src/test/_karma/mockserver.js
+++ b/web/gui/src/test/_karma/mockserver.js
@@ -7,7 +7,9 @@
     http = require('http'),
     WebSocketServer = require('websocket').server,
     port = 8123,
-    scenarioRoot = 'ev/';
+    scenarioRoot = 'ev/',
+    verbose = false,         // show received messages from client
+    extraVerbose = false;    // show ALL received messages from client
 
 var lastcmd,        // last command executed
     lastargs,       // arguments to last command
@@ -23,8 +25,19 @@
     evdata;         // event data
 
 
+process.argv.forEach(function (val) {
+    switch (val) {
+        case '-v': verbose = true; break;
+        case '-v!': extraVerbose = true; break;
+    }
+});
+
 var scFiles = fs.readdirSync(scenarioRoot);
+console.log();
 console.log('Mock Server v1.0');
+if (verbose || extraVerbose) {
+    console.log('Verbose=' + verbose, 'ExtraVerbose=' + extraVerbose);
+}
 console.log('================');
 listScenarios();
 
@@ -62,6 +75,15 @@
     return true;
 }
 
+// displays the message if our arguments say we should
+function displayMsg(msg) {
+    var ev = JSON.parse(msg);
+    switch (ev.event) {
+        case 'topoHeartbeat': return extraVerbose;
+        default: return true;
+    }
+}
+
 wsServer.on('request', function(request) {
     console.log(); // newline after prompt
     console.log("Origin: ", request.origin);
@@ -81,15 +103,19 @@
     rl.prompt();
 
     connection.on('message', function(message) {
-        if (message.type === 'utf8') {
-            console.log(); // newline after prompt
-            console.log('Received Message: ' + message.utf8Data);
-            //connection.sendUTF(message.utf8Data);
-            rl.prompt();
-        }
-        else if (message.type === 'binary') {
-            console.log('Received Binary Message of ' + message.binaryData.length + ' bytes');
-            //connection.sendBytes(message.binaryData);
+        if (verbose || extraVerbose) {
+            if (message.type === 'utf8') {
+                if (displayMsg(message.utf8Data)) {
+                    console.log(); // newline after prompt
+                    console.log('Received Message: ' + message.utf8Data);
+                }
+                //connection.sendUTF(message.utf8Data);
+                rl.prompt();
+            }
+            else if (message.type === 'binary') {
+                console.log('Received Binary Message of ' + message.binaryData.length + ' bytes');
+                //connection.sendBytes(message.binaryData);
+            }
         }
     });
     connection.on('close', function(reasonCode, description) {
