diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java
index 5bb46f2..b574b77 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java
@@ -86,7 +86,7 @@
     @Consumes("application/json")
     public Response setSprites(InputStream stream) throws IOException {
         JsonNode root = mapper.readTree(stream);
-        String name = root.path("defn_id").asText("sprites");
+        String name = root.path("defn_name").asText("sprites");
         get(SpriteService.class).put(name, root);
         return Response.ok().build();
     }
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index cd8c3c2..3cc12b3 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -581,8 +581,9 @@
 
     // Sends requested sprite data.
     private void sendSpriteData(ObjectNode event) {
+        String name = event.path("payload").path("name").asText();
         ObjectNode root = mapper.createObjectNode();
-        root.set("defn", get(SpriteService.class).get(event.path("payload").path("name").asText()));
+        root.set("data", get(SpriteService.class).get(name));
         sendMessage(envelope("spriteDataResponse", number(event, "sid"), root));
     }
 
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
index 66138e7..408a85a 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
@@ -130,7 +130,7 @@
 
     @Override
     public void put(String name, JsonNode spriteData) {
-        log.info("Registered sprite definition {}", name);
+        log.info("Registered sprite definition [{}]", name);
         sprites.put(name, spriteData);
     }
 
diff --git a/web/gui/src/main/webapp/app/view/topo/topo.js b/web/gui/src/main/webapp/app/view/topo/topo.js
index 68ecf2c..f4d08f2 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -366,7 +366,7 @@
                 }
             );
             spriteG = zoomLayer.append ('g').attr('id', 'topo-sprites');
-            tspr.loadSprites(spriteG);
+            tspr.loadSprites(spriteG, $loc.search().sprites);
 
             forceG = zoomLayer.append('g').attr('id', 'topo-force');
             tfs.initForce(svg, forceG, uplink, dim);
diff --git a/web/gui/src/main/webapp/app/view/topo/topoEvent.js b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
index 154cd4c..68f2e10 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoEvent.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
@@ -27,7 +27,7 @@
     'use strict';
 
     // injected refs
-    var $log, wss, tps, tis, tfs, tss, tts;
+    var $log, wss, tps, tis, tfs, tss, tts, tspr;
 
     // internal state
     var handlerMap,
@@ -55,7 +55,10 @@
             removeHost: tfs,
             addLink: tfs,
             updateLink: tfs,
-            removeLink: tfs
+            removeLink: tfs,
+
+            spriteListResponse: tspr,
+            spriteDataResponse: tspr
         };
     }
 
@@ -69,9 +72,9 @@
     .factory('TopoEventService',
         ['$log', '$location', 'WebSocketService',
             'TopoPanelService', 'TopoInstService', 'TopoForceService',
-            'TopoSelectService', 'TopoTrafficService',
+            'TopoSelectService', 'TopoTrafficService', 'TopoSpriteService',
 
-        function (_$log_, $loc, _wss_, _tps_, _tis_, _tfs_, _tss_, _tts_) {
+        function (_$log_, $loc, _wss_, _tps_, _tis_, _tfs_, _tss_, _tts_, _tspr_) {
             $log = _$log_;
             wss = _wss_;
             tps = _tps_;
@@ -79,6 +82,7 @@
             tfs = _tfs_;
             tss = _tss_;
             tts = _tts_;
+            tspr = _tspr_;
 
             createHandlerMap();
 
@@ -86,8 +90,6 @@
                 openListener = wss.addOpenListener(wsOpen);
                 wss.bindHandlers(handlerMap);
                 wss.sendEvent('topoStart');
-                wss.sendEvent('spriteListRequest');
-                wss.sendEvent('spriteDataRequest', {name: 'sample'});
                 $log.debug('topo comms started');
             }
 
diff --git a/web/gui/src/main/webapp/app/view/topo/topoSprite.js b/web/gui/src/main/webapp/app/view/topo/topoSprite.js
index 15e5182..1586a04 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoSprite.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoSprite.js
@@ -23,55 +23,12 @@
     'use strict';
 
     // injected refs
-    var $log, $http, fs, sus;
+    var $log, $http, fs, sus, wss;
+
+    var tssid = 'TopoSpriteService: ';
 
     // internal state
-    var spriteLayer,
-        cache = d3.map();
-
-    // constants
-    var urlPrefix = 'data/ext/';
-
-    function getUrl(id) {
-        return urlPrefix + id + '.json';
-    }
-
-    // =========================
-
-    function clearCache() {
-        cache = d3.map();
-    }
-
-
-    function loadSpriteData(id, cb) {
-        var url = getUrl(id),
-            promise = cache.get(id);
-
-        if (!promise) {
-            // need to fetch data and cache it
-            promise = $http.get(url);
-
-            promise.meta = {
-                id: id,
-                url: url,
-                wasCached: false
-            };
-
-            promise.then(function (response) {
-                // success
-                promise.spriteData = response.data;
-                cb(promise.spriteData);
-            }, function (response) {
-                // error
-                $log.warn('Failed to retrieve sprite data: ' + url,
-                    response.status, response.data);
-            });
-
-        } else {
-            promise.meta.wasCached = true;
-            cb(promise.spriteData);
-        }
-    }
+    var spriteLayer;
 
     function doSprite(def, item) {
         var g;
@@ -100,42 +57,71 @@
         });
     }
 
-    function loadSprites(layer) {
-        spriteLayer = layer;
+    // ==========================
+    // event handlers
 
-        loadSpriteData('sprites', function (data) {
-            var defs = {};
-
-            $log.debug("Loading sprites...", data.file_desc);
-
-            data.defn.forEach(function (d) {
-                defs[d.id] = d;
-            });
-
-            data.load.forEach(function (item) {
-                doSprite(defs[item.id], item);
-            });
-        });
-
+    // Handles response from 'spriteListRequest' which lists all the
+    // registered sprite definitions on the server.
+    // (see onos-upload-sprites)
+    function inList(payload) {
+        $log.debug(tssid + 'Registered sprite definitions:', payload.names);
+        // Some day, we will make this list available to the user in
+        //  a dropdown selection box...
     }
 
+    // Handles response from 'spriteDataRequest' which provides the
+    //  data for the requested sprite definition.
+    function inData(payload) {
+        var data = payload.data,
+            name = data && data.defn_name,
+            desc = data && data.defn_desc,
+            defs = {};
+
+        if (!data) {
+            $log.warn(tssid + 'No sprite data loaded.')
+            return;
+        }
+
+        $log.debug("Loading sprites...[" + name + "]", desc);
+
+        data.defn.forEach(function (d) {
+            defs[d.id] = d;
+        });
+
+        data.load.forEach(function (item) {
+            doSprite(defs[item.id], item);
+        });
+    }
+
+
+    function loadSprites(layer, defname) {
+        var name = defname || 'sprites';
+        spriteLayer = layer;
+
+        $log.info(tssid + 'Requesting sprite definition ['+name+']...');
+
+        wss.sendEvent('spriteListRequest');
+        wss.sendEvent('spriteDataRequest', {name: name});
+    }
 
     // === -----------------------------------------------------
     // === MODULE DEFINITION ===
 
     angular.module('ovTopo')
     .factory('TopoSpriteService',
-        ['$log', '$http', 'FnService', 'SvgUtilService',
+        ['$log', '$http', 'FnService', 'SvgUtilService', 'WebSocketService',
 
-        function (_$log_, _$http_, _fs_, _sus_) {
+        function (_$log_, _$http_, _fs_, _sus_, _wss_) {
             $log = _$log_;
             $http = _$http_;
             fs = _fs_;
             sus = _sus_;
+            wss = _wss_;
 
             return {
-                clearCache: clearCache,
-                loadSprites: loadSprites
+                loadSprites: loadSprites,
+                spriteListResponse: inList,
+                spriteDataResponse: inData
             };
         }]);
 
diff --git a/web/gui/src/main/webapp/data/ext/sprites.json b/web/gui/src/main/webapp/data/sprites/sprites.json
similarity index 93%
rename from web/gui/src/main/webapp/data/ext/sprites.json
rename to web/gui/src/main/webapp/data/sprites/sprites.json
index ca8c2fe..f92e705 100644
--- a/web/gui/src/main/webapp/data/ext/sprites.json
+++ b/web/gui/src/main/webapp/data/sprites/sprites.json
@@ -1,6 +1,6 @@
 {
-  "defn_id": "sample",
-  "file_desc": "Cloud Sprite Data",
+  "defn_name": "sample",
+  "defn_desc": "Sample Cloud Sprite Data",
 
   "_comment": [
     "configuration file for loading canned and/or custom sprites (and labels)",
