diff --git a/planetstack/core/xoslib/dashboards/xosAdminDashboard.html b/planetstack/core/xoslib/dashboards/xosAdminDashboard.html
index f70f188..8b64877 100644
--- a/planetstack/core/xoslib/dashboards/xosAdminDashboard.html
+++ b/planetstack/core/xoslib/dashboards/xosAdminDashboard.html
@@ -26,7 +26,7 @@
 <button class="btn btn-high btn-xos-contentButtonPanel" onclick="$('button.btn-xos-save-another').click()">Save and add another</button>
 </div>
 <div class="box save-box" id="xos-listview-button-box">
-<button class="btn btn-high btn-success btn-xos-contentButtonPanel" onclick="">Add</button>
+<button class="btn btn-high btn-success btn-xos-contentButtonPanel" onclick="$('button.btn-xos-add').click()">Add</button>
 </div>
 </div> <!-- end contentButtonPanel -->
 <div id="contentInner">
diff --git a/planetstack/core/xoslib/static/css/xosAdminDashboard.css b/planetstack/core/xoslib/static/css/xosAdminDashboard.css
index b2d4740..ff54fee 100644
--- a/planetstack/core/xoslib/static/css/xosAdminDashboard.css
+++ b/planetstack/core/xoslib/static/css/xosAdminDashboard.css
@@ -6,6 +6,10 @@
     display: none;
 }
 
+.btn-xos-list {
+    display: none;
+}
+
 #logPanel {
     display: none;
 }
diff --git a/planetstack/core/xoslib/static/js/xosAdminSite.js b/planetstack/core/xoslib/static/js/xosAdminSite.js
index 6fb46a0..99cf851 100644
--- a/planetstack/core/xoslib/static/js/xosAdminSite.js
+++ b/planetstack/core/xoslib/static/js/xosAdminSite.js
@@ -95,7 +95,7 @@
         name = OBJS[index];
         collection_name = name + "s";
         nav_url = collection_name;
-        api_command = "list" + collection_name.charAt(0).toUpperCase() + collection_name.slice(1);
+        api_command = "list" + firstCharUpper(collection_name);
         listViewName = collection_name + "ListView";
         detailViewName = collection_name + "DetailView";
 
@@ -103,10 +103,15 @@
         routes[nav_url] = api_command;
 
         nav_url = collection_name + "/:id";
-        api_command = "detail" + collection_name.charAt(0).toUpperCase() + collection_name.slice(1);
+        api_command = "detail" + firstCharUpper(collection_name);
 
         api[api_command] = XOSAdminApp.detailShower(detailViewName, collection_name, "detail", name);
         routes[nav_url] = api_command;
+
+        nav_url = "add" + firstCharUpper(name);
+        api_command = "add" + firstCharUpper(name);
+        api[api_command] = XOSAdminApp.addShower(detailViewName, collection_name, "detail", name);
+        routes[nav_url] = api_command;
     };
 
     XOSAdminApp.Router = new router({ appRoutes: routes, controller: api });
diff --git a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js
index 4a408e1..11d97d6 100644
--- a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js
+++ b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js
@@ -8,6 +8,10 @@
     return _.template($(id).html());
 }
 
+function firstCharUpper(s) {
+    return s.charAt(0).toUpperCase() + s.slice(1);
+}
+
 HTMLView = Marionette.ItemView.extend({
   render: function() {
       this.$el.append(this.options.html);
@@ -119,6 +123,15 @@
         }
     },
 
+    addShower: function(detailName, collection_name, regionName, title) {
+        var app=this;
+        return function() {
+            detailViewClass = app[detailName];
+            detailView = new detailViewClass();
+            app[regionName].show(detailView);
+        }
+    },
+
     detailShower: function(detailName, collection_name, regionName, title) {
         var app=this;
         showModelId = function(model_id) {
@@ -322,6 +335,15 @@
 XOSListView = Marionette.CompositeView.extend({
              childViewContainer: 'tbody',
 
+             events: {"click button.btn-xos-add": "addClicked",
+                     },
+
+             addClicked: function(e) {
+                console.log("add");
+                e.preventDefault();
+                this.app.Router.navigate("add" + firstCharUpper(this.collection.modelName));
+             },
+
              initialize: function() {
                  this.listenTo(this.collection, 'change', this._renderChildren)
 
diff --git a/planetstack/core/xoslib/templates/xosAdmin.html b/planetstack/core/xoslib/templates/xosAdmin.html
index 94fb0f8..7eb43d1 100644
--- a/planetstack/core/xoslib/templates/xosAdmin.html
+++ b/planetstack/core/xoslib/templates/xosAdmin.html
@@ -69,10 +69,17 @@
     </tr>
 </script>
 
+<script type="text/template" id="xos-inline-list-buttons-template">
+           <button class="btn js-submit btn-xos-list btn-xos-add">Add</button>
+       </td>
+    </tr>
+</script>
+
 <!-- Deployment -->
 
 <script type="text/template" id="xosAdmin-deployment-list-template">
   <h3 class="xos-list-title"><%= title %></h3>
+  <%= xosInlineListButtonsTemplate() %>
   <table class="test-table">
   <thead><tr>
      <th>id</th>
@@ -690,4 +697,5 @@
 
 <script>
 xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html());
+xosInlineListButtonsTemplate = _.template($("#xos-inline-list-buttons-template").html());
 </script>
