diff --git a/planetstack/core/xoslib/static/js/test.js b/planetstack/core/xoslib/static/js/test.js
index 54d5835..9d55526 100644
--- a/planetstack/core/xoslib/static/js/test.js
+++ b/planetstack/core/xoslib/static/js/test.js
@@ -49,7 +49,7 @@
 };
 
 TestApp.on("start", function() {
-     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'networkSliver', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'sliver', 'user', 'sliceRole', 'userDeployment'];
+     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'networkSliver', 'networkDeployment', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'sliver', 'user', 'sliceRole', 'userDeployment'];
 
      for (var index in objs) {
          name = objs[index];
@@ -111,7 +111,11 @@
                     for (relatedName in this.model.collection.relatedCollections) {
                         relatedField = this.model.collection.relatedCollections[relatedName];
 
-                        relatedListViewClass = TestApp[relatedName + "ListView"].extend({collection: xos[relatedName].filterBy(relatedField,this.model.id)});
+                        relatedListViewClassName = relatedName + "ListView";
+                        if (TestApp[relatedListViewClassName] == undefined) {
+                            console.log("warning: " + relatedListViewClassName + " not found");
+                        }
+                        relatedListViewClass = TestApp[relatedListViewClassName].extend({collection: xos[relatedName].filterBy(relatedField,this.model.id)});
                         TestApp["linkedObjs" + (index+1)].show(new relatedListViewClass());
                         index = index + 1;
                     }
diff --git a/planetstack/core/xoslib/templates/xosAdmin.html b/planetstack/core/xoslib/templates/xosAdmin.html
index 443b654..26119b8 100644
--- a/planetstack/core/xoslib/templates/xosAdmin.html
+++ b/planetstack/core/xoslib/templates/xosAdmin.html
@@ -192,6 +192,40 @@
   </form>
 </script>
 
+<!-- NetworkDeployment -->
+
+<script type="text/template" id="xosAdmin-networkDeployment-list-template">
+  <h3><%= title %></h3>
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>network</th>
+     <th>deployment</th>
+     <th>net_id</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+<script type="text/template" id="xosAdmin-networkDeployment-listitem-template">
+  <td class="objectLink"><%= id %></td>
+  <td><%= idToName(network,"networks","name") %></td>
+  <td><%= idToName(deployment,"deployments","name") %></td>
+  <td><%= net_id %></td>
+</script>
+
+<script type="text/template" id="xosAdmin-networkDeployment-detail-template">
+  <h3>Detail View: Network</h3>
+  <form>
+  <table>
+  <tr><td>Network:</td><td><input type="text" name="network" value="<%= network %>"></td></tr>
+  <tr><td>Sliver:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>
+  <tr><td>Ip:</td><td><input type="text" name="net_id" value="<%= net_id %>"></td></tr>
+  <tr><td colspan=2><button class="btn js-submit">Save</button></td></tr>
+  </table>
+  </form>
+</script>
+
 <!-- Node -->
 
 <script type="text/template" id="xosAdmin-node-list-template">
