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 e818071..66138e7 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
@@ -15,7 +15,9 @@
  */
 package org.onosproject.ui.impl;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.felix.scr.annotations.Activate;
@@ -31,6 +33,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import static com.google.common.collect.ImmutableList.of;
 import static java.util.stream.Collectors.toSet;
@@ -40,7 +43,7 @@
  */
 @Component(immediate = true)
 @Service
-public class UiExtensionManager implements UiExtensionService {
+public class UiExtensionManager implements UiExtensionService, SpriteService {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -115,4 +118,25 @@
     public synchronized UiExtension getViewExtension(String viewId) {
         return views.get(viewId);
     }
+
+
+    // Provisional tracking of sprite definitions
+    private Map<String, JsonNode> sprites = Maps.newHashMap();
+
+    @Override
+    public Set<String> getNames() {
+        return ImmutableSet.copyOf(sprites.keySet());
+    }
+
+    @Override
+    public void put(String name, JsonNode spriteData) {
+        log.info("Registered sprite definition {}", name);
+        sprites.put(name, spriteData);
+    }
+
+    @Override
+    public JsonNode get(String name) {
+        return sprites.get(name);
+    }
+
 }
