diff --git a/client/.gitignore b/client/.gitignore
new file mode 100644
index 0000000..46d349a
--- /dev/null
+++ b/client/.gitignore
@@ -0,0 +1,3 @@
+node_modules
+catalog
+
diff --git a/client/catalog/README.md b/client/README.md
similarity index 99%
rename from client/catalog/README.md
rename to client/README.md
index 042551b..2e20aad 100644
--- a/client/catalog/README.md
+++ b/client/README.md
@@ -32,4 +32,3 @@
 If you would like to modify the theme go to [this url](http://bootstrap-live-customizer.com/). To modify the current theme, then upload the variables.less in this folder, make your modifications, and overwrite the variables.less file when you are done (and the theme.min.css).
 
 
-
diff --git a/client/catalog/.gitignore b/client/catalog-dev/.gitignore
similarity index 100%
rename from client/catalog/.gitignore
rename to client/catalog-dev/.gitignore
diff --git a/client/catalog/background.jpg b/client/catalog-dev/background.jpg
similarity index 100%
rename from client/catalog/background.jpg
rename to client/catalog-dev/background.jpg
Binary files differ
diff --git a/client/catalog-dev/config-example.json b/client/catalog-dev/config-example.json
new file mode 100644
index 0000000..5a0455b
--- /dev/null
+++ b/client/catalog-dev/config-example.json
@@ -0,0 +1,18 @@
+{
+	"global": {
+		"catalogPrefix": "/catalog",
+		"faceConfig": {
+			"host": "atmos-csu.research-lan.colostate.edu",
+			"port": 9696
+		}
+	},
+	"retrieval": {
+		"demoKey": {
+			"pub": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuAmnWYKE7E8G+hyy4TiTU7t91KyIGvglEeT6HWEkW4LKzXLO22a1jVS9+yP96I6vp7N5vpS1t7oXtgWuzkO+O85u6gfbvwp+67zJe2I89eHO4dmNnP4fx/j7WcCUCyzZfbyW67h5IoouoBIdQge2Xdvh9rFdex9UUhyjEZv5676zlcqlhz8xGBrJmQHsqpD9ijY1XhKBvoSIoQ0ZKkpmwVk8QYM9PbjUqzSQBj4aYXS+BPV6aRudVvyDt2DBXp2FNP0CGrosCXKnSl4Yv8BYp0k0RmFZDuJuntLb/XIvPEfMX5li7g3zHzAlIJIVSwT+FRkd3H5cECFSIZFUYIuSQQIDAQAB",
+			"priv": "MIIEpQIBAAKCAQEAuAmnWYKE7E8G+hyy4TiTU7t91KyIGvglEeT6HWEkW4LKzXLO22a1jVS9+yP96I6vp7N5vpS1t7oXtgWuzkO+O85u6gfbvwp+67zJe2I89eHO4dmNnP4fx/j7WcCUCyzZfbyW67h5IoouoBIdQge2Xdvh9rFdex9UUhyjEZv5676zlcqlhz8xGBrJmQHsqpD9ijY1XhKBvoSIoQ0ZKkpmwVk8QYM9PbjUqzSQBj4aYXS+BPV6aRudVvyDt2DBXp2FNP0CGrosCXKnSl4Yv8BYp0k0RmFZDuJuntLb/XIvPEfMX5li7g3zHzAlIJIVSwT+FRkd3H5cECFSIZFUYIuSQQIDAQABAoIBAQCKBftzfxavn6lM5T8m+GZN0vzRBsBg8Z/jpsYKSLOayiHNKYCIPaSFpXuCIYEo6/JDJLB2xVLvwupLgkGSwm2mrvCyJkihI38Cz6iQF6I+iia9bYrupgwxzsK7klm1c+J9kXXivYxj4hyLwmoc/mnARMtYV7cTQvDbUEzgRQmPykWKBv6Y0SL1WprfiRfKIMwSqQk91ffj6whKxBLAuUdseVBmo/ivLPq0a+wDrcvaJAxSB4eIwCHzAugkRA/NoK0vG3mra0lK5jvQrcNIuffxNAnresDVDTnYRc42etjePLAhlpeK/4sjYE/wPdeP8yzLHUg/hsSpAPIjLXJNZqUBAoGBANxPmUQNf1lGHo/nLY3dVMD3+kYNnTUD8XwS81qdg8/dNyF8t+7DOdJ1j7Itb+zGA1XXAGfTm6JoUG+eKKR2OSuyZcxygpOgzxAFanXKhTWZsKbG70xNmX0sOAEhtTGsgFTEGEv977MwIlFa6n2bsp3Luj/AGmvNsOYvBDPXOklxAoGBANXZyXAaE7M5JALusLuEFxLGvWVz6TRdQ//c+FWvKrnh+nFlTlAPpDvlaPJJca8ViNevxJ2UhGtbENXAqgwTYpnAi/yQD4dATViIveK6Pn4t12mpPAlkMbbMTR8jtp5l1oHchcwe8QuEOKuTX5+STpNGlWs+tsMb12mhCpc3eO3RAoGAMxjDE2WOA8afkACuMBkFbzwUb+r4azNe7sf2aS3fRHaqMroabuYYoxdhHJItQ10pqN8U2P/bOO+4uCqWgo5o9BmMQr7MSjEh1TVsW6V8/9GFhyjcl3XoA4Ad/SU0QTEhEofomrdqwMSJMRVFDZzu8Gov6FlFx3sNbFW7Q8rHWgECgYEAq/TVz3iIgsLdvCXmosHSM9zvCpcr3FlqhmFOpseVmaamVWxajnIlY6xSuRBpg5nTUWwas4Nq/1BYtyiXE+K6lFuJtOq6Mc145EoANkIAYkHGR0Y36m1QtGaPVQzImZHV7NJAHCR9Ov90+jIk4BErca1+FKB3IWhPzLYb6ABJEyECgYEAthhzWSxPkqyiLl+2vnhdR3EEkvDX6MV6hGu4tDAf2A1Y0GSApyEaSAA31hlxu5EgneLD7Ns2HMpIfQMydB5lcwKQc9g/tVI1eRzuk6Myi+2JmPEM2BLyiX8yI+xnZlKDiZleQitCS4RQGz5HbXT70aYQIGxuvkQ/uf68jdrL6o8="
+		},
+		"destinations": [
+			"/retrieve/demo"
+		]
+	}
+}
diff --git a/client/catalog-dev/css/cubeLoader.css b/client/catalog-dev/css/cubeLoader.css
new file mode 100644
index 0000000..008b846
--- /dev/null
+++ b/client/catalog-dev/css/cubeLoader.css
@@ -0,0 +1,61 @@
+.sk-cube-grid {
+  width: 40px;
+  height: 40px;
+  margin: 100px auto;
+}
+
+.sk-cube-grid .sk-cube {
+  width: 33%;
+  height: 33%;
+  background-color: #333;
+  float: left;
+  -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
+          animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; 
+}
+.sk-cube-grid .sk-cube1 {
+  -webkit-animation-delay: 0.2s;
+          animation-delay: 0.2s; }
+.sk-cube-grid .sk-cube2 {
+  -webkit-animation-delay: 0.3s;
+          animation-delay: 0.3s; }
+.sk-cube-grid .sk-cube3 {
+  -webkit-animation-delay: 0.4s;
+          animation-delay: 0.4s; }
+.sk-cube-grid .sk-cube4 {
+  -webkit-animation-delay: 0.1s;
+          animation-delay: 0.1s; }
+.sk-cube-grid .sk-cube5 {
+  -webkit-animation-delay: 0.2s;
+          animation-delay: 0.2s; }
+.sk-cube-grid .sk-cube6 {
+  -webkit-animation-delay: 0.3s;
+          animation-delay: 0.3s; }
+.sk-cube-grid .sk-cube7 {
+  -webkit-animation-delay: 0s;
+          animation-delay: 0s; }
+.sk-cube-grid .sk-cube8 {
+  -webkit-animation-delay: 0.1s;
+          animation-delay: 0.1s; }
+.sk-cube-grid .sk-cube9 {
+  -webkit-animation-delay: 0.2s;
+          animation-delay: 0.2s; }
+
+@-webkit-keyframes sk-cubeGridScaleDelay {
+  0%, 70%, 100% {
+    -webkit-transform: scale3D(1, 1, 1);
+            transform: scale3D(1, 1, 1);
+  } 35% {
+    -webkit-transform: scale3D(0, 0, 1);
+            transform: scale3D(0, 0, 1); 
+  }
+}
+
+@keyframes sk-cubeGridScaleDelay {
+  0%, 70%, 100% {
+    -webkit-transform: scale3D(1, 1, 1);
+            transform: scale3D(1, 1, 1);
+  } 35% {
+    -webkit-transform: scale3D(0, 0, 1);
+            transform: scale3D(0, 0, 1);
+  } 
+}
diff --git a/client/catalog/css/style.css b/client/catalog-dev/css/style.css
similarity index 82%
rename from client/catalog/css/style.css
rename to client/catalog-dev/css/style.css
index 1a66da4..94ea89f 100644
--- a/client/catalog/css/style.css
+++ b/client/catalog-dev/css/style.css
@@ -129,7 +129,7 @@
   font-family: "Glyphicons Halflings";
   content: "\e114";
   float: right;
-  color: gray;
+  color: white;
 }
 
 .panel-heading a[data-toggle="collapse"].collapsed::after {
@@ -167,3 +167,45 @@
 .treeExplorer .treeExplorerNode.file::before {
   content: "\e022"
 }
+
+#popup {
+  top: 0;
+  left: 0;
+  position: fixed;
+  width: 100%;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  z-index: 9000;
+  pointer-events: none;
+}
+
+#popup > * {
+  display: none;
+  pointer-events: auto;
+}
+
+.modal-open, #request {
+  padding-right: 0 !important;
+}
+
+.sk-cube-grid {
+  display: none;
+}
+
+table:empty ~ .sk-cube-grid {
+  display: block;
+}
+
+#requestForm {
+  max-width: 500px;
+  min-height: 300px;
+  position: relative;
+}
+
+.absBotRight {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+}
diff --git a/client/catalog/css/theme.min.css b/client/catalog-dev/css/theme.min.css
similarity index 99%
rename from client/catalog/css/theme.min.css
rename to client/catalog-dev/css/theme.min.css
index fd241e4..50fa138 100644
--- a/client/catalog/css/theme.min.css
+++ b/client/catalog-dev/css/theme.min.css
@@ -52,7 +52,7 @@
 }
 .img-thumbnail,body{background-color:#fff}
 .btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}
-@font-face{font-family:'Glyphicons Halflings';src:url(http://bootstrap-live-customizer.com/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot);src:url(http://bootstrap-live-customizer.com/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(http://bootstrap-live-customizer.com/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(http://bootstrap-live-customizer.com/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff) format('woff'),url(http://bootstrap-live-customizer.com/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(http://bootstrap-live-customizer.com/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}
+@font-face{font-family:'Glyphicons Halflings';src:url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/fonts/glyphicons-halflings-regular.eot);src:url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/fonts/glyphicons-halflings-regular.woff) format('woff'),url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}
 .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
 .glyphicon-asterisk:before{content:"\2a"}
 .glyphicon-plus:before{content:"\2b"}
diff --git a/client/catalog/index.html b/client/catalog-dev/index.html
similarity index 75%
rename from client/catalog/index.html
rename to client/catalog-dev/index.html
index bd2e933..590fcfb 100644
--- a/client/catalog/index.html
+++ b/client/catalog-dev/index.html
@@ -16,6 +16,7 @@
 </script>
 
 <!-- Styles -->
+<link rel="stylesheet" href="css/cubeLoader.css">
 <link rel="stylesheet" href="css/theme.min.css">
 <link rel="stylesheet" href="css/style.css">
 
@@ -92,7 +93,7 @@
 
         <div id="results" class="panel panel-default hidden">
           <div class="panel-body">
-            <nav class="navbar navbar-inverse col-md-12 resultMenu hidden">
+            <nav class="navbar navbar-inverse col-md-12 resultMenu">
               <ul class="nav navbar-nav navbar-left">
                 <li class="previous disabled">
                   <a href="#">&larr; Previous</a>
@@ -116,7 +117,18 @@
               </ul>
             </nav>
             <table id="resultTable" class="table"></table>
-            <nav class="navbar navbar-inverse col-md-12 resultMenu hidden">
+            <div class="sk-cube-grid">
+              <div class="sk-cube sk-cube1"></div>
+              <div class="sk-cube sk-cube2"></div>
+              <div class="sk-cube sk-cube3"></div>
+              <div class="sk-cube sk-cube4"></div>
+              <div class="sk-cube sk-cube5"></div>
+              <div class="sk-cube sk-cube6"></div>
+              <div class="sk-cube sk-cube7"></div>
+              <div class="sk-cube sk-cube8"></div>
+              <div class="sk-cube sk-cube9"></div>
+            </div>
+            <nav class="navbar navbar-inverse col-md-12 resultMenu">
               <ul class="nav navbar-nav navbar-left">
                 <li class="previous disabled">
                   <a href="#">&larr; Previous</a>
@@ -148,6 +160,36 @@
 
   </div>
 
+  <div id="popup">
+    <div id="request" class="panel panel-primary">
+      <div class="panel-heading">Confirmation</div>
+      <div class="panel-body">
+        <form id="requestForm">
+          <p>Select a destination and press submit if you are sure you want to download the selected data to the selected destination.</p>
+          <div class="dropdown">
+            <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
+              Destination
+              <span class="caret"></span>
+            </button>
+            <ul id="requestDest" class="dropdown-menu"></ul>
+          </div>
+          <!-- Disabled For Demo
+          <div class="form-group">
+            <label>Authentication Key</label>
+            <input type="file" class="form-control" placeholder="JSON encoded RSA key">
+            <p class="help-block">It is required that you have authentication to move the files, otherwise this will fail.</p>
+          </div>
+          <div id="requestDrop" class="well">You can also drop your key here instead of using the input above.</div>
+          -->
+          <div class="absBotRight">
+            <button type="submit" class="btn btn-primary">Submit</button>
+            <button id="requestCancel" type="button" class="btn btn-default">Cancel</button>
+          </div>
+        </form>
+      </div>
+    </div>
+  </div>
+
 </body>
 
 </html>
diff --git a/client/catalog/js/autocomplete.js b/client/catalog-dev/js/autocomplete.js
similarity index 100%
rename from client/catalog/js/autocomplete.js
rename to client/catalog-dev/js/autocomplete.js
diff --git a/client/catalog-dev/js/catalog.js b/client/catalog-dev/js/catalog.js
new file mode 100644
index 0000000..d013fda
--- /dev/null
+++ b/client/catalog-dev/js/catalog.js
@@ -0,0 +1,714 @@
+//Run when the document loads AND we have the config loaded.
+(function(){
+  "use strict";
+  var config;
+  Promise.all([
+    new Promise(function(resolve, reject){
+      $.ajax('config.json').done(function(data){
+        config = data;
+        resolve();
+      }).fail(function(){
+        console.error("Failed to get config.");
+        ga('send', 'event', 'error', 'config');
+        reject();
+      });
+    }),
+    new Promise(function(resolve, reject){
+      var timeout = setTimeout(function(){
+        console.error("Document never loaded? Something bad has happened!");
+        reject();
+      }, 10000);
+      $(function () {
+        clearTimeout(timeout);
+        resolve();
+      });
+    })
+  ]).then(function(){
+    new Atmos(config);
+  }, function(){
+    console.error("Failed to initialize!");
+    ga('send', 'event', 'error', 'init');
+  });
+})();
+
+var Atmos = (function(){
+  "use strict";
+
+  var closeButton = '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
+
+  var guid = function(){
+    var d = new Date().getTime();
+    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+      var r = (d + Math.random()*16)%16 | 0;
+      d = Math.floor(d/16);
+      return (c=='x' ? r : (r&0x3|0x8)).toString(16);
+    });
+    return uuid;
+  }
+
+  /**
+   * Atmos
+   * @version 2.0
+   *
+   * Configures an Atmos object. This manages the atmos interface.
+   *
+   * @constructor
+   * @param {string} catalog - NDN path
+   * @param {Object} config - Object of configuration options for a Face.
+   */
+  var Atmos = function(config){
+
+    //Internal variables.
+    this.results = [];
+    this.resultCount = Infinity;
+    this.name = null;
+    this.page = 0;
+    this.resultsPerPage = 25;
+    this.retrievedSegments = 0;
+
+    //Config/init
+    this.config = config;
+
+    this.catalog = config['global']['catalogPrefix'];
+
+    this.face = new Face(config['global']['faceConfig']);
+
+    //Easy access dom variables
+    this.categories = $('#side-menu');
+    this.resultTable = $('#resultTable');
+    this.filters = $('#filters');
+    this.searchInput = $('#search');
+    this.searchBar = $('#searchBar');
+    this.searchButton = $('#searchButton');
+    this.resultMenu = $('.resultMenu');
+    this.alerts = $('#alerts');
+    this.requestForm = $('#requestForm');
+
+    var scope = this;
+
+    $('.requestSelectedButton').click(function(){
+      ga('send', 'event', 'button', 'click', 'request');
+      scope.request(scope.resultTable.find('.resultSelector:checked:not([disabled])').parent().parent());
+    });
+
+    this.filterSetup();
+
+    //Init autocomplete
+    this.searchInput.autoComplete(function(field, callback){
+      ga('send', 'event', 'search', 'autocomplete');
+      scope.autoComplete(field, function(list){
+        callback(list.map(function(element){
+          return field + element + "/";
+        }));
+      });
+    });
+
+    //Handle search
+    this.searchBar.submit(function(e){
+      ga('send', 'event', 'search', 'submit');
+      e.preventDefault();
+      if (scope.searchInput.val().length === 0){
+        if (!scope.searchBar.hasClass('has-error')){
+          scope.searchBar.addClass('has-error').append('<span class="help-block">Search path is required!</span>');
+        }
+        return;
+      } else {
+        scope.searchBar.removeClass('has-error').find('.help-block').fadeOut(function(){$(this).remove()});
+      }
+      scope.pathSearch();
+    });
+
+    this.searchButton.click(function(){
+      console.log("Search Button Pressed");
+      ga('send', 'event', 'button', 'click', 'search');
+      scope.search();
+    });
+
+    //Result navigation handlers
+    this.resultMenu.find('.next').click(function(){
+      ga('send', 'event', 'button', 'click', 'next');
+      if (!$(this).hasClass('disabled')){
+        scope.getResults(scope.page + 1);
+      }
+    });
+    this.resultMenu.find('.previous').click(function(){
+      ga('send', 'event', 'button', 'click', 'previous');
+      if (!$(this).hasClass('disabled')){
+        scope.getResults(scope.page - 1);
+      }
+    });
+
+    //Change the number of results per page handler
+    var rpps = $('.resultsPerPageSelector').click(function(){
+
+      var t = $(this);
+
+      if (t.hasClass('active')){
+        return;
+      }
+
+      rpps.find('.active').removeClass('active');
+      t.addClass('active');
+      scope.resultsPerPage = Number(t.text());
+      scope.getResults(0); //Force return to page 1;
+
+    });
+
+    //Init tree search
+    $('#treeSearch div').treeExplorer(function(path, callback){
+      console.log("Tree Explorer request", path);
+      ga('send', 'event', 'tree', 'request');
+      scope.autoComplete(path, function(list){
+        console.log("Autocomplete response", list);
+        callback(list.map(function(element){
+          return (path == "/"?"/":"") + element + "/";
+        }));
+      })
+    });
+
+    this.setupRequestForm();
+
+  }
+
+  Atmos.prototype.clearResults = function(){
+    this.results = []; //Drop any old results.
+    this.retrievedSegments = 0;
+    this.resultCount = Infinity;
+    this.page = 0;
+    this.resultTable.empty();
+  }
+
+  Atmos.prototype.pathSearch = function(){
+    var value = this.searchInput.val();
+
+    this.clearResults();
+
+    var scope = this;
+
+    this.query(this.catalog, {"??": value},
+    function(interest, data){
+      console.log("Query response:", interest, data);
+
+      scope.name = data.getContent().toString().replace(/[\n\0]/g,"");
+
+      scope.getResults(0);
+
+    },
+    function(interest){
+      console.warn("Request failed! Timeout", interest);
+      scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
+    });
+
+  }
+
+  Atmos.prototype.search = function(){
+
+    var filters = this.getFilters();
+
+    console.log("Search started!", this.searchInput.val(), filters);
+
+    console.log("Initiating query");
+
+    this.clearResults();
+
+    var scope = this;
+
+    this.query(this.catalog, filters,
+    function(interest, data){ //Response function
+      console.log("Query Response:", interest, data);
+
+      scope.name = data.getContent().toString().replace(/[\n\0]/g,"");
+
+      scope.getResults(0);
+
+    }, function(interest){ //Timeout function
+      console.warn("Request failed! Timeout");
+      scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
+    });
+
+  }
+
+  Atmos.prototype.autoComplete = function(field, callback){
+
+    var scope = this;
+
+    this.query(this.catalog, {"?": field},
+    function(interest, data){
+
+      var name = new Name(data.getContent().toString().replace(/[\n\0]/g,""));
+
+      var interest = new Interest(name);
+      interest.setInterestLifetimeMilliseconds(5000);
+      interest.setMustBeFresh(true);
+
+      scope.face.expressInterest(interest,
+      function(interest, data){
+
+        if (data.getContent().length !== 0){
+          callback(JSON.parse(data.getContent().toString().replace(/[\n\0]/g, "")).next);
+        } else {
+          callback([]);
+        }
+
+      }, function(interest){
+        console.warn("Interest timed out!", interest);
+        scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
+      });
+
+    }, function(interest){
+      console.error("Request failed! Timeout", interest);
+      scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
+    });
+
+  }
+
+  Atmos.prototype.showResults = function(resultIndex) {
+
+    var results = this.results.slice(this.resultsPerPage * resultIndex, this.resultsPerPage * (resultIndex + 1));
+
+    var resultDOM = $(
+      results.reduce(function(prev, current){
+        prev.push('<tr><td><input class="resultSelector" type="checkbox"></td><td>');
+        prev.push(current);
+        prev.push('</td></tr>');
+        return prev;
+      }, ['<tr><th><input id="resultSelectAll" type="checkbox" title="Select All"> Select</th><th>Name</th></tr>']).join('')
+    );
+
+    resultDOM.find('#resultSelectAll').click(function(){
+      if ($(this).is(':checked')){
+        resultDOM.find('.resultSelector:not([disabled])').prop('checked', true);
+      } else {
+        resultDOM.find('.resultSelector:not([disabled])').prop('checked', false);
+      }
+    });
+
+    this.resultTable.hide().empty().append(resultDOM).slideDown('slow');
+
+    this.resultMenu.find('.pageNumber').text(resultIndex + 1);
+    this.resultMenu.find('.pageLength').text(this.resultsPerPage * resultIndex + results.length);
+
+    if (this.resultsPerPage * (resultIndex + 1) >= this.resultCount) {
+      this.resultMenu.find('.next').addClass('disabled');
+    } else if (resultIndex === 0){
+      this.resultMenu.find('.next').removeClass('disabled');
+    }
+
+    if (resultIndex === 0){
+      this.resultMenu.find('.previous').addClass('disabled');
+    } else if (resultIndex === 1) {
+      this.resultMenu.find('.previous').removeClass('disabled');
+    }
+
+  }
+
+  Atmos.prototype.getResults = function(index){
+
+    if ($('#results').hasClass('hidden')){
+      $('#results').removeClass('hidden').slideDown();
+    }
+
+    if ((this.results.length === this.resultCount) || (this.resultsPerPage * (index + 1) < this.results.length)){
+      //console.log("We already have index", index);
+      this.page = index;
+      this.showResults(index);
+      return;
+    }
+
+    if (this.name === null) {
+      console.error("This shouldn't be reached! We are getting results before a search has occured!");
+      throw new Error("Illegal State");
+    }
+
+    var first = new Name(this.name).appendSegment(this.retrievedSegments++);
+
+    console.log("Requesting data index: (", this.retrievedSegments - 1, ") at ", first.toUri());
+
+    var scope = this;
+
+    var interest = new Interest(first)
+    interest.setInterestLifetimeMilliseconds(5000);
+    interest.setMustBeFresh(true);
+
+    this.face.expressInterest(interest,
+      function(interest, data){ //Response
+
+        if (data.getContent().length === 0){
+          scope.resultMenu.find('.totalResults').text(0);
+          scope.resultMenu.find('.pageNumber').text(0);
+          scope.resultMenu.find('.pageLength').text(0);
+          console.log("Empty response.");
+          return;
+        }
+
+        var content = JSON.parse(data.getContent().toString().replace(/[\n\0]/g,""));
+
+        if (!content.results){
+          scope.resultMenu.find('.totalResults').text(0);
+          scope.resultMenu.find('.pageNumber').text(0);
+          scope.resultMenu.find('.pageLength').text(0);
+          console.log("No results were found!");
+          return;
+        }
+
+        scope.results = scope.results.concat(content.results);
+
+        scope.resultCount = content.resultCount;
+
+        scope.resultMenu.find('.totalResults').text(scope.resultCount);
+
+        scope.page = index;
+
+        scope.getResults(index); //Keep calling this until we have enough data.
+
+      },
+      function(interest){ //Timeout
+        console.error("Failed to retrieve results: timeout", interest);
+        scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
+      }
+    );
+
+  }
+
+  Atmos.prototype.query = function(prefix, parameters, callback, timeout) {
+
+    var queryPrefix = new Name(prefix);
+    queryPrefix.append("query");
+
+    var jsonString = JSON.stringify(parameters);
+    queryPrefix.append(jsonString);
+
+    var queryInterest = new Interest(queryPrefix);
+    queryInterest.setInterestLifetimeMilliseconds(4000);
+    queryInterest.setMustBeFresh(true);
+
+    this.face.expressInterest(queryInterest, callback, timeout);
+
+  }
+
+  /**
+   * This function returns a map of all the categories active filters.
+   * @return {Object<string, string>}
+   */
+  Atmos.prototype.getFilters = function(){
+    var filters = this.filters.children().toArray().reduce(function(prev, current){
+      var data = $(current).text().split(/:/);
+      prev[data[0]] = data[1];
+      return prev;
+    }, {}); //Collect a map<category, filter>.
+    //TODO Make the return value map<category, Array<filter>>
+    return filters;
+  }
+
+  /**
+   * Creates a closable alert for the user.
+   *
+   * @param {string} message
+   * @param {string} type - Override the alert type.
+   */
+  Atmos.prototype.createAlert = function(message, type) {
+
+    var alert = $('<div class="alert"><div>');
+    alert.addClass(type?type:'alert-info');
+    alert.text(message);
+    alert.append(closeButton);
+
+    this.alerts.append(alert);
+  }
+
+  /**
+   * Requests all of the names represented by the buttons in the elements list.
+   *
+   * @param elements {Array<jQuery>} A list of the table row elements
+   */
+  Atmos.prototype.request = function(){
+
+    //Pseudo globals.
+    var keyChain;
+    var certificateName;
+    var keyAdded = false;
+
+    return function(elements){
+
+      var names = [];
+      var destination = $('#requestDest .active').text();
+      $(elements).find('>*:nth-child(2)').each(function(){
+        var name = $(this).text();
+        names.push(name);
+      });//.append('<span class="badge">Requested!</span>')
+      //Disabling the checkbox doesn't make sense anymore with the ability to request to multiple destinations.
+      //$(elements).find('.resultSelector').prop('disabled', true).prop('checked', false);
+
+      var scope = this;
+      this.requestForm.on('submit', function(e){ //This will be registered for the next submit from the form.
+        e.preventDefault();
+
+        //Form checking
+        var dest = scope.requestForm.find('#requestDest .active');
+        if (dest.length !== 1){
+          $('#requestForm').append($('<div class="alert alert-warning">A destination is required!' + closeButton + '<div>'));
+          return;
+        }
+
+        $('#request').modal('hide')//Initial params are ok. We can close the form.
+        .remove('.alert') //Remove any alerts
+        .find('.active').removeClass('active'); //Disable the active destination
+
+        $(this).off(e); //Don't fire this again, the request must be regenerated
+
+        //Key setup
+        if (!keyAdded){
+          if (!scope.config.retrieval.demoKey || !scope.config.retrieval.demoKey.pub || !scope.config.retrieval.demoKey.priv){
+            scope.createAlert("This host was not configured to handle retrieval! See console for details.", 'alert-danger');
+            console.error("Missing/invalid key! This must be configured in the config on the server.", scope.config.demoKey);
+            return;
+          }
+
+          //FIXME base64 may or may not exist in other browsers. Need a new polyfill.
+          var pub = new Buffer(base64.toByteArray(scope.config.retrieval.demoKey.pub)); //MUST be a Buffer (Buffer != Uint8Array)
+          var priv = new Buffer(base64.toByteArray(scope.config.retrieval.demoKey.priv));
+
+          var identityStorage = new MemoryIdentityStorage();
+          var privateKeyStorage = new MemoryPrivateKeyStorage();
+          keyChain = new KeyChain(new IdentityManager(identityStorage, privateKeyStorage),
+                        new SelfVerifyPolicyManager(identityStorage));
+
+          var keyName = new Name("/retrieve/DSK-123");
+          certificateName = keyName.getSubName(0, keyName.size() - 1)
+            .append("KEY").append(keyName.get(-1))
+            .append("ID-CERT").append("0");
+
+          identityStorage.addKey(keyName, KeyType.RSA, new Blob(pub, false));
+          privateKeyStorage.setKeyPairForKeyName(keyName, KeyType.RSA, pub, priv);
+
+          scope.face.setCommandSigningInfo(keyChain, certificateName);
+
+          keyAdded = true;
+
+        }
+
+        //Retrieval
+        var retrievePrefix = new Name("/catalog/ui/" + guid());
+
+        //Due to a lack of success callback in the register prefix function, we have to pretend we
+        //know it succeeded with an arbitrary timeout.
+        var sendTimer = setTimeout(function(){
+          var prefix = new Name(dest.text());
+          prefix.append(retrievePrefix);
+          var interest = new Interest(prefix);
+          interest.setInterestLifetimeMilliseconds(3000);
+          scope.face.expressInterest(interest,
+            function(interest, data){ //Success
+              console.log("Request for", prefix.toUri(), "succeeded.", interest, data);
+            }, function(interest){ //Failure
+              console.error("Failure to request", prefix.toUri(), interest);
+              scope.createAlert("Failed to request " + prefix.toUri() + ". This means that the retrieve failed! See console for more details.");
+            }
+          );
+        }, 10000); //Wait 10 seconds
+
+        scope.face.registerPrefix(retrievePrefix,
+          function(prefix, interest, face, interestFilterId, filter){ //On Interest
+            //This function will exist until the page exits but will likely only be used once.
+
+            var data = new Data(interest.getName());
+            var content = JSON.stringify(names);
+            data.setContent(content);
+            keyChain.sign(data, certificateName);
+
+            try {
+              face.putData(data);
+              console.log("Responded for", interest.getName().toUri(), data);
+              scope.createAlert("Data retrieval has initiated.", "alert-success");
+            } catch (e) {
+              console.error("Failed to respond to", interest.getName().toUri(), data);
+              scope.createAlert("Data retrieval failed.");
+            }
+
+          }, function(prefix){ //On fail
+            clearTimeout(sendTimer); //Cancel the earlier request timer
+            scope.createAlert("Failed to register the retrieval URI! See console for details.", "alert-danger");
+            console.error("Failed to register URI:", prefix.toUri(), prefix);
+
+          }
+        );
+
+      });
+      $('#request').modal(); //This forces the form to be the only option.
+
+    }
+  }();
+
+  Atmos.prototype.filterSetup = function() {
+    //Filter setup
+
+    var prefix = new Name(this.catalog).append("filters-initialization");
+
+    var scope = this;
+
+    this.getAll(prefix, function(data) { //Success
+      var raw = JSON.parse(data.replace(/[\n\0]/g, '')); //Remove null byte and parse
+
+      console.log("Filter categories:", raw);
+
+      $.each(raw, function(index, object){ //Unpack list of objects
+        $.each(object, function(category, searchOptions) { //Unpack category from object (We don't know what it is called)
+          //Create the category
+          var e = $('<li><a href="#">' + category.replace(/_/g, " ") + '</a><ul class="subnav nav nav-pills nav-stacked"></ul></li>');
+
+          var sub = e.find('ul.subnav');
+          $.each(searchOptions, function(index, name){
+            //Create the filter list inside the category
+            var item = $('<li><a href="#">' + name + '</a></li>');
+            sub.append(item);
+            item.click(function(){ //Click on the side menu filters
+              if (item.hasClass('active')){ //Does the filter already exist?
+                item.removeClass('active');
+                scope.filters.find(':contains(' + category + ':' + name + ')').remove();
+              } else { //Add a filter
+                item.addClass('active');
+                var filter = $('<span class="label label-default"></span>');
+                filter.text(category + ':' + name);
+
+                scope.filters.append(filter);
+
+                filter.click(function(){ //Click on a filter
+                  filter.remove();
+                  item.removeClass('active');
+                });
+              }
+
+            });
+          });
+
+          //Toggle the menus. (Only respond when the immediate tab is clicked.)
+          e.find('> a').click(function(){
+            scope.categories.find('.subnav').slideUp();
+            var t = $(this).siblings('.subnav');
+            if ( !t.is(':visible') ){ //If the sub menu is not visible
+              t.slideDown(function(){
+                t.triggerHandler('focus');
+              }); //Make it visible and look at it.
+            }
+          });
+
+          scope.categories.append(e);
+
+        });
+      });
+
+    }, function(interest){ //Timeout
+      scope.createAlert("Failed to initialize the filters!", "alert-danger");
+      console.error("Failed to initialize filters!", interest);
+      ga('send', 'event', 'error', 'filters');
+    });
+
+  }
+
+  /**
+   * This function retrieves all segments in order until it knows it has reached the last one.
+   * It then returns the final joined result.
+   */
+  Atmos.prototype.getAll = function(prefix, callback, timeout){
+
+    var scope = this;
+    var d = [];
+
+    var request = function(segment){
+
+      var name = new Name(prefix);
+      name.appendSegment(segment);
+
+      var interest = new Interest(name);
+      interest.setInterestLifetimeMilliseconds(1000);
+      interest.setMustBeFresh(true); //Is this needed?
+
+      scope.face.expressInterest(interest, handleData, timeout);
+
+    }
+
+
+    var handleData = function(interest, data){
+
+      d.push(data.getContent().toString());
+
+      if (interest.getName().get(-1).toSegment() == data.getMetaInfo().getFinalBlockId().toSegment()){
+        callback(d.join(""));
+      } else {
+        request(interest.getName().toSegment()++);
+      }
+
+    }
+
+    request(0);
+
+  }
+
+  Atmos.prototype.setupRequestForm = function(){
+    this.requestForm.find('#requestCancel').click(function(){
+      $('#request').unbind('submit') //Removes all event handlers.
+      .modal('hide'); //Hides the form.
+    });
+
+    var dests = $(this.config['retrieval']['destinations'].reduce(function(prev, current){
+      prev.push('<li><a href="#">');
+      prev.push(current);
+      prev.push("</a></li>");
+      return prev;
+    }, []).join(""));
+
+    this.requestForm.find('#requestDest').append(dests)
+    .on('click', 'a', function(e){
+      $('#requestDest .active').removeClass('active');
+      $(this).parent().addClass('active');
+    });
+
+    //This code will remain unused until users must use their own keys instead of the demo key.
+//    var scope = this;
+
+//    var warning = '<div class="alert alert-warning">' + closeButton + '<div>';
+
+//    var handleFile = function(e){
+//      var t = $(this);
+//      if (e.target.files.length > 1){
+//        var el = $(warning);
+//        t.append(el.append("We are looking for a single file, we will try the first only!"));
+//      } else if (e.target.files.length === 0) {
+//        var el = $(warning.replace("alert-warning", "alert-danger"));
+//        t.append(el.append("No file was supplied!"));
+//        return;
+//      }
+
+//      var reader = new FileReader();
+//      reader.onload = function(e){
+//        var key;
+//        try {
+//          key = JSON.parse(e.target.result);
+//        } catch (e) {
+//          console.error("Could not parse the key! (", key, ")");
+//          var el = $(warning.replace("alert-warning", "alert-danger"));
+//          t.append(el.append("Failed to parse the key file, is it a valid json key?"));
+//        }
+
+//        if (!key.DEFAULT_RSA_PUBLIC_KEY_DER || !key.DEFAULT_RSA_PRIVATE_KEY_DER) {
+//          console.warn("Invalid key", key);
+//          var el = $(warning.replace("alert-warning", "alert-danger"));
+//          t.append(el.append("Failed to parse the key file, it is missing required attributes."));
+//        }
+
+
+//      };
+
+//    }
+
+//    this.requestForm.find('#requestDrop').on('dragover', function(e){
+//      e.dataTransfer.dropEffect = 'copy';
+//    }).on('drop', handleFile);
+
+//    this.requestForm.find('input[type=file]').change(handleFile);
+
+  }
+
+  return Atmos;
+
+})();
diff --git a/client/catalog/js/treeExplorer.js b/client/catalog-dev/js/treeExplorer.js
similarity index 99%
rename from client/catalog/js/treeExplorer.js
rename to client/catalog-dev/js/treeExplorer.js
index fc6a7a3..5037629 100644
--- a/client/catalog/js/treeExplorer.js
+++ b/client/catalog-dev/js/treeExplorer.js
@@ -2,8 +2,8 @@
 (function(){
   "use strict";
   jQuery.fn.extend({
-    treeExplorer: function(getChildren){
 
+    treeExplorer: function(getChildren){
       var cache = {}; //Cache previously requested paths.
 
       var tree = $('<div class="treeExplorer"></div>');
diff --git a/client/catalog/variables.less b/client/catalog-dev/variables.less
similarity index 100%
rename from client/catalog/variables.less
rename to client/catalog-dev/variables.less
diff --git a/client/catalog/config-example.json b/client/catalog/config-example.json
deleted file mode 100644
index 39d20f9..0000000
--- a/client/catalog/config-example.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-	"catalogPrefix": "/catalog/myUniqueName",
-	"faceConfig": {
-		"host": "atmos-csu.research-lan.colostate.edu",
-		"port": 9696
-	}
-}
diff --git a/client/catalog/js/catalog.js b/client/catalog/js/catalog.js
deleted file mode 100644
index 3f703cb..0000000
--- a/client/catalog/js/catalog.js
+++ /dev/null
@@ -1,527 +0,0 @@
-//Run when the document loads AND we have the config loaded.
-(function(){
-  var catalog = null;
-  var config = null;
-  Promise.all([
-    new Promise(function(resolve, reject){
-      $.ajax('config.json').done(function(data){
-        catalog = data.catalogPrefix;
-        config = data.faceConfig;
-        resolve();
-      }).fail(function(){
-        console.error("Failed to get config.");
-        reject()
-      });
-    }),
-    new Promise(function(resolve, reject){
-      var timeout = setTimeout(function(){
-        console.error("Document never loaded? Something bad has happened!");
-        reject();
-      }, 10000);
-      $(function () {
-        clearTimeout(timeout);
-        resolve();
-      });
-    })
-  ]).then(function(){
-    new Atmos(catalog, config);
-  }, function(){
-    console.error("Failed to initialize!");
-  })
-})();
-
-var Atmos = (function(){
-  "use strict";
-  /**
-   * Atmos
-   * @version 2.0
-   *
-   * Configures an Atmos object. This manages the atmos interface.
-   *
-   * @constructor
-   * @param {string} catalog - NDN path
-   * @param {Object} config - Object of configuration options for a Face.
-   */
-  function Atmos(catalog, config){
-
-    //Internal variables.
-    this.results = [];
-    this.resultCount = Infinity;
-    this.name = null;
-    this.page = 0;
-    this.resultsPerPage = 25;
-    this.retrievedSegments = 0;
-
-    this.catalog = catalog;
-
-    this.face = new Face(config);
-
-    this.categories = $('#side-menu');
-    this.resultTable = $('#resultTable');
-    this.filters = $('#filters');
-    this.searchInput = $('#search');
-    this.searchBar = $('#searchBar');
-    this.searchButton = $('#searchButton');
-    this.resultMenu = $('.resultMenu');
-    this.alerts = $('#alerts');
-
-    var scope = this;
-
-    this.resultTable.on('click', '.interest-button', function(){
-      scope.request(this);
-    });
-
-    $('.requestSelectedButton').click(function(){
-      scope.request(
-        scope.resultTable.find('.resultSelector:checked:not([disabled])')
-        .parent().next().find('.interest-button')
-      );
-    });
-
-    this.filterSetup();
-
-    this.searchInput.autoComplete(function(field, callback){
-      scope.autoComplete(field, function(list){
-        callback(list.map(function(element){
-          return field + element + "/";
-        }));
-      });
-    });
-
-    this.searchBar.submit(function(e){
-      e.preventDefault();
-      if (scope.searchInput.val().length === 0){
-        if (!scope.searchBar.hasClass('has-error')){
-          scope.searchBar.addClass('has-error').append('<span class="help-block">Search path is required!</span>');
-        }
-        return;
-      } else {
-        scope.searchBar.removeClass('has-error').find('.help-block').fadeOut(function(){$(this).remove()});
-      }
-      scope.pathSearch();
-    });
-
-    this.searchButton.click(function(){
-      console.log("Search Button Pressed");
-      scope.search();
-    });
-
-    this.resultMenu.find('.next').click(function(){
-      if (!$(this).hasClass('disabled')){
-        scope.getResults(scope.page + 1);
-      }
-    });
-    this.resultMenu.find('.previous').click(function(){
-      if (!$(this).hasClass('disabled')){
-        scope.getResults(scope.page - 1);
-      }
-    });
-
-    var rpps = $('.resultsPerPageSelector').click(function(){
-
-      var t = $(this);
-
-      if (t.hasClass('active')){
-        return;
-      }
-
-      rpps.find('.active').removeClass('active');
-      t.addClass('active');
-      scope.resultsPerPage = Number(t.text());
-      scope.getResults(0); //Force return to page 1;
-
-    });
-
-    $('#treeSearch div').treeExplorer(function(path, callback){
-      console.log("Tree Explorer request", path);
-      scope.autoComplete(path, function(list){
-        console.log("Autocomplete response", list);
-        callback(list.map(function(element){
-          return (path == "/"?"/":"") + element + "/";
-        }));
-      })
-    });
-
-  }
-
-  Atmos.prototype.clearResults = function(){
-    this.results = []; //Drop any old results.
-    this.retrievedSegments = 0;
-    this.resultCount = Infinity;
-    this.page = 0;
-    this.resultTable.empty();
-  }
-
-  Atmos.prototype.pathSearch = function(){
-    var value = this.searchInput.val();
-
-    this.clearResults();
-
-    var scope = this;
-
-    this.query(this.catalog, {"??": value},
-    function(interest, data){
-      console.log("Query response:", interest, data);
-
-      scope.name = data.getContent().toString().replace(/[\n\0]/g,"");
-
-      scope.getResults(0);
-
-    },
-    function(interest){
-      console.warn("Request failed! Timeout", interest);
-      scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
-    });
-
-  }
-
-  Atmos.prototype.search = function(){
-
-    var filters = this.getFilters();
-
-    console.log("Search started!", this.searchInput.val(), filters);
-
-    console.log("Initiating query");
-
-    this.clearResults();
-
-    var scope = this;
-
-    this.query(this.catalog, filters,
-    function(interest, data){ //Response function
-      console.log("Query Response:", interest, data);
-
-      scope.name = data.getContent().toString().replace(/[\n\0]/g,"");
-
-      scope.getResults(0);
-
-    }, function(interest){ //Timeout function
-      console.warn("Request failed! Timeout");
-      scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
-    });
-
-  }
-
-  Atmos.prototype.autoComplete = function(field, callback){
-
-    var scope = this;
-
-    this.query(this.catalog, {"?": field},
-    function(interest, data){
-
-      var name = new Name(data.getContent().toString().replace(/[\n\0]/g,""));
-
-      var interest = new Interest(name);
-      interest.setInterestLifetimeMilliseconds(5000);
-      interest.setMustBeFresh(true);
-
-      scope.face.expressInterest(interest,
-      function(interest, data){
-
-        if (data.getContent().length !== 0){
-          callback(JSON.parse(data.getContent().toString().replace(/[\n\0]/g, "")).next);
-        } else {
-          callback([]);
-        }
-
-      }, function(interest){
-        console.warn("Interest timed out!", interest);
-        scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
-      });
-
-    }, function(interest){
-      console.error("Request failed! Timeout", interest);
-      scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
-    });
-
-  }
-
-  Atmos.prototype.showResults = function(resultIndex) {
-
-    if ($('#results').hasClass('hidden')){
-      $('#results').removeClass('hidden').slideDown();
-    }
-
-    var results = this.results.slice(this.resultsPerPage * resultIndex, this.resultsPerPage * (resultIndex + 1));
-
-    var resultDOM = $(
-      results.reduce(function(prev, current){
-        prev.push('<tr><td><input class="resultSelector" type="checkbox"></td><td>');
-        prev.push(current);
-        prev.push('</td></tr>');
-        return prev;
-      }, ['<tr><th><input id="resultSelectAll" type="checkbox" title="Select All"> Select</th><th>Name</th></tr>']).join('')
-    );
-
-    resultDOM.find('#resultSelectAll').click(function(){
-      if ($(this).is(':checked')){
-        resultDOM.find('.resultSelector:not([disabled])').prop('checked', true);
-      } else {
-        resultDOM.find('.resultSelector:not([disabled])').prop('checked', false);
-      }
-    });
-
-    this.resultTable.empty().append(resultDOM).slideDown();
-    if (this.resultMenu.hasClass('hidden')){
-      this.resultMenu.removeClass('hidden').slideDown();
-    }
-
-    this.resultMenu.find('.pageNumber').text(resultIndex + 1);
-    this.resultMenu.find('.pageLength').text(this.resultsPerPage * (resultIndex + 1));
-
-    if (this.resultsPerPage * (resultIndex + 1) >= this.resultCount) {
-      this.resultMenu.find('.next').addClass('disabled');
-    } else if (resultIndex === 0){
-      this.resultMenu.find('.next').removeClass('disabled');
-    }
-
-    if (resultIndex === 0){
-      this.resultMenu.find('.previous').addClass('disabled');
-    } else if (resultIndex === 1) {
-      this.resultMenu.find('.previous').removeClass('disabled');
-    }
-
-  }
-
-  Atmos.prototype.getResults = function(index){
-
-    if ((this.results.length === this.resultCount) || (this.resultsPerPage * (index + 1) < this.results.length)){
-      //console.log("We already have index", index);
-      this.page = index;
-      this.showResults(index);
-      return;
-    }
-
-    if (this.name === null) {
-      console.error("This shouldn't be reached! We are getting results before a search has occured!");
-      throw new Error("Illegal State");
-    }
-
-    var first = new Name(this.name).appendSegment(this.retrievedSegments++);
-
-    console.log("Requesting data index: (", this.retrievedSegments - 1, ") at ", first.toUri());
-
-    var scope = this;
-
-    var interest = new Interest(first)
-    interest.setInterestLifetimeMilliseconds(5000);
-    interest.setMustBeFresh(true);
-
-    this.face.expressInterest(interest,
-      function(interest, data){ //Response
-
-        if (data.getContent().length === 0){
-          scope.resultMenu.find('.totalResults').text(0);
-          scope.resultMenu.find('.pageNumber').text(0);
-          console.log("Empty response.");
-          return;
-        }
-
-        var content = JSON.parse(data.getContent().toString().replace(/[\n\0]/g,""));
-
-        if (!content.results){
-          scope.resultMenu.find('.totalResults').text(0);
-          scope.resultMenu.find('.pageNumber').text(0);
-          console.log("No results were found!");
-          return;
-        }
-
-        scope.results = scope.results.concat(content.results);
-
-        scope.resultCount = content.resultCount;
-
-        scope.resultMenu.find('.totalResults').text(scope.resultCount);
-
-        scope.page = index;
-
-        scope.getResults(index); //Keep calling this until we have enough data.
-
-      },
-      function(interest){ //Timeout
-        console.error("Failed to retrieve results: timeout", interest);
-        scope.createAlert("Request timed out. \"" + interest.getName().toUri() + "\" See console for details.");
-      }
-    );
-
-  }
-
-  Atmos.prototype.query = function(prefix, parameters, callback, timeout) {
-
-    var queryPrefix = new Name(prefix);
-    queryPrefix.append("query");
-
-    var jsonString = JSON.stringify(parameters);
-    queryPrefix.append(jsonString);
-
-    var queryInterest = new Interest(queryPrefix);
-    queryInterest.setInterestLifetimeMilliseconds(4000);
-    queryInterest.setMustBeFresh(true);
-
-    this.face.expressInterest(queryInterest, callback, timeout);
-
-  }
-
-  /**
-   * This function returns a map of all the categories active filters.
-   * @return {Object<string, string>}
-   */
-  Atmos.prototype.getFilters = function(){
-    var filters = this.filters.children().toArray().reduce(function(prev, current){
-      var data = $(current).text().split(/:/);
-      prev[data[0]] = data[1];
-      return prev;
-    }, {}); //Collect a map<category, filter>.
-    //TODO Make the return value map<category, Array<filter>>
-    return filters;
-  }
-
-  /**
-   * Creates a closable alert for the user.
-   *
-   * @param {string} message
-   * @param {string} type - Override the alert type.
-   */
-  Atmos.prototype.createAlert = function(message, type) {
-
-    var alert = $('<div class="alert"><div>');
-    alert.addClass(type?type:'alert-info');
-    alert.text(message);
-    alert.append(Atmos.closeButton);
-
-    this.alerts.append(alert);
-  }
-
-  /**
-   * Requests all of the names represented by the buttons in the elements list.
-   *
-   * @param elements {Array<jQuery>} A list of the interestButton elements
-   */
-  Atmos.prototype.request = function(elements){
-
-    var scope = this;
-    $(elements).filter(':not(.disabled)').each(function(){
-      var button = $(this);
-
-      if (button.hasClass('disabled')){
-        console.warn("An attempt to request a disabled element has occured");
-        return;
-      }
-
-      var name = button.text();
-      var interest = new Interest(new Name('/retrieve' + name));
-      scope.face.expressInterest(interest, function(){}, function(){});
-
-    })
-    .append('<span class="badge">Requested!</span>')
-    .addClass('disabled')
-    .addClass('label-success')
-    .parent().prev().find('.resultSelector').prop('disabled', true).prop('checked', false);
-
-  }
-
-  Atmos.prototype.filterSetup = function() {
-    //Filter setup
-
-    var prefix = new Name(this.catalog).append("filters-initialization");
-
-    var scope = this;
-
-    this.getAll(prefix, function(data) { //Success
-      var raw = JSON.parse(data.replace(/[\n\0]/g, '')); //Remove null byte and parse
-
-      console.log("Filter categories:", raw);
-
-      $.each(raw, function(index, object){ //Unpack list of objects
-        $.each(object, function(category, searchOptions) { //Unpack category from object (We don't know what it is called)
-          //Create the category
-          var e = $('<li><a href="#">' + category.replace(/\_/g, " ") + '</a><ul class="subnav nav nav-pills nav-stacked"></ul></li>');
-
-          var sub = e.find('ul.subnav');
-          $.each(searchOptions, function(index, name){
-            //Create the filter list inside the category
-            var item = $('<li><a href="#">' + name + '</a></li>');
-            sub.append(item);
-            item.click(function(){ //Click on the side menu filters
-              if (item.hasClass('active')){ //Does the filter already exist?
-                item.removeClass('active');
-                scope.filters.find(':contains(' + category + ':' + name + ')').remove();
-              } else { //Add a filter
-                item.addClass('active');
-                var filter = $('<span class="label label-default"></span>');
-                filter.text(category + ':' + name);
-
-                scope.filters.append(filter);
-
-                filter.click(function(){ //Click on a filter
-                  filter.remove();
-                  item.removeClass('active');
-                });
-              }
-
-            });
-          });
-
-          //Toggle the menus. (Only respond when the immediate tab is clicked.)
-          e.find('> a').click(function(){
-            scope.categories.find('.subnav').slideUp();
-            var t = $(this).siblings('.subnav');
-            if ( !t.is(':visible') ){ //If the sub menu is not visible
-              t.slideDown(function(){
-                t.triggerHandler('focus');
-              }); //Make it visible and look at it.
-            }
-          });
-
-          scope.categories.append(e);
-
-        });
-      });
-
-    }, function(interest){ //Timeout
-      scope.createAlert("Failed to initialize the filters!", "alert-danger");
-      console.error("Failed to initialize filters!", interest);
-    });
-
-  }
-
-  Atmos.prototype.getAll = function(prefix, callback, timeout){
-
-    var scope = this;
-    var d = [];
-
-    var request = function(segment){
-
-      var name = new Name(prefix);
-      name.appendSegment(segment);
-
-      var interest = new Interest(name);
-      interest.setInterestLifetimeMilliseconds(1000);
-      interest.setMustBeFresh(true); //Is this needed?
-
-      scope.face.expressInterest(interest, handleData, timeout);
-
-    }
-
-
-    var handleData = function(interest, data){
-
-      d.push(data.getContent().toString());
-
-      if (interest.getName().get(-1).toSegment() == data.getMetaInfo().getFinalBlockId().toSegment()){
-        callback(d.join(""));
-      } else {
-        request(interest.getName().toSegment()++);
-      }
-
-    }
-
-    request(0);
-
-
-  }
-
-  Atmos.closeButton = '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
-
-  return Atmos;
-
-})();
diff --git a/client/catalog/sample.json b/client/catalog/sample.json
deleted file mode 100644
index 260abcc..0000000
--- a/client/catalog/sample.json
+++ /dev/null
@@ -1,727 +0,0 @@
-{
-    "QueryRestrictions": [],
-    "SearchCatagories": {
-        "institute": ["BCC", "BNU", "CCCMA", "CMCC", "CNRM-CERFACS", "COLA-CFS", "CSIRO-BOM", "CSIRO-QCCCE", "FIO", "ICHEC", "INM", "INPE", "IPSL", "LASG-CESS", "LASG-IAP", "MIROC", "MOHC", "MPI-M", "MRI", "NASA-GISS", "NASA-GMAO", "NCAR", "NCC", "NCEP", "NICAM", "NIMR-KMA", "NOAA-GFDL", "NSF-DOE-NCAR", "SMHI", "UNSW"],
-        "model": ["ACCESS1.0", "ACCESS1.3", "BCC - CSM1.1", "BCC - CSM1.1(m)", "BNU - ESM", "CCSM4", "CESM1(BGC)", "CESM1(CAM5)", "CESM1(CAM5.1, FV2)", "CESM1(FASTCHEM)", "CESM1(WACCM)", "CFSv2 - 2011", "CMCC - CESM", "CMCC - CM", "CMCC - CMS", " CNRM - CM5", "CNRM - CM5 - 2", "CSIRO - Mk3.6.0", "CSIRO - Mk3L - 1 - 2", "CanAM4", "CanCM4", "CanESM2", "EC - EARTH", "FGOALS - g2", "FGOALS - gl", "FGOALS - s2", "FIO - ESM", "GEOS - 5", "GFDL - CM2.1", "GFDL - CM3", "GFDL - ESM2G", "GFDL - ESM2M", "GFDL - HIRAM - C180", "GFDL - HIRAM - C360", "GISS - E2 - H", "GISS - E2 - H - CC", "GISS - E2 - R", "GISS - E2 - R - CC", "HadCM3", "HadGEM2 - A", "HadGEM2 - AO", "HadGEM2 - CC ", "HadGEM2 - ES", "INM - CM4", "IPSL - CM5A - LR", "IPSL - CM5A - MR", "IPSL - CM5B - LR", "MIROC - ESM", "MIROC - ESM - CHEM", "MIROC4h", "MIROC5", "MPI - ESM - LR", "MPI - ESM - MR", "MPI - ESM - P", "MRI - AGCM3.2H", "MRI - AGCM3.2S", "MRI - CGCM3", "MRI - ESM1", "NICAM - 09", "NorESM1 - M", "NorESM1 - ME"],
-        "submodel": [],
-        "instrument": [],
-        "experiment_family": ["All", "Atmos - only", "Control", "Decadal", "ESM", "Historical", "Idealized", "Paleo", "RCP"],
-        "experiment": ["abrupt4xCO2", "amip", "amip4K", "amip4xCO2", "amipFuture", "aqua4K", "aqua4xCO2", "aquaControl", "decadal1959", "decadal1960", "decadal1961", "decadal1962", "decadal1963", "decadal1964", "decadal1965", "decadal1966", "decadal1967", "decadal1968", "decadal1969", "decadal1970", "decadal1971", "decadal1972", "decadal1973", "decadal1974", "decadal1975", "decadal1976", "decadal1977", "decadal1978", "decadal1979", "decadal1980", "decadal1981", "decadal1982", "decadal1983", "decadal1984", "decadal1985", "decadal1986", "decadal1987", "decadal1988", "decadal1989", "decadal1990", "decadal1991", "decadal1992", "decadal1993", "decadal1994", "decadal1995", "decadal1996", "decadal1997", "decadal1998", "decadal1999", "decadal2000", "decadal2001", "decadal2002", "decadal2003", "decadal2004", "decadal2005", "decadal2006", "decadal2007", "decadal2008", "decadal2009", "decadal2010", " decadal2011", "decadal2012", "esmControl", "esmFdbk1", "esmFdbk2", "esmFixClim1", "esmFixClim2", "esmHistorical", "esmrcp85", "historical", "historicalExt", "historicalGHG", "historicalMisc", "historicalNat", "lgm", "midHolocene", "noVolc1960", "noVolc1965", "noVolc1970", "noVolc1975", "noVolc1980", "noVolc1985", "noVolc1990", "noVolc1995", "noVolc2000", "noVolc2005", "past1000", "piControl", "rcp26", "rcp45", "rcp60", "rcp85", "sst2030", "sst2090", "sst2090rcp45", "sstClim", "sstClim4xCO2", "sstClimAerosol", "sstClimSulfate", "volcIn2010"],
-        "subexperiment": [],
-        "frequency": ["3hr", "6hr", "day", "fx", "mon", "monClim", "subhr", "yr"],
-        "product": ["output1", "output2", "restricted", "unsolicited"],
-        "realm": ["aerosol", "atmos", "land", "landIce", "ocean", "ocnBgchem", "seaIce"],
-        "variable": ["agessc", "albisccp", "areacella", "areacello", "bmelt", "burntArea", "cCwd", "cLeaf", "cLitter", "cMisc", "cProduct", "cRoot", "cSoil", "cSoilFast", "cSoilMedium", "cSoilSlow", "cVeg", "cWood", "ccb", "cct", "cfc11", "ch4", "chl", "chlcalc", "chldiat", "chldiaz", "chlpico", "ci", "cl", "clcalipso", "clhcalipso", "cli", "clic", "clis", "clisccp", "clivi", "cllcalipso", "clmcalipso", "clt", "cltcalipso", "cltisccp", "clw", "clwc", "clws", "clwvi", "co2", "co3", "co3satarag", "co3satcalc", "deptho", "dfe", "dissic", "dissoc", "divice", "dpco2", "epc100", "epcalc100", "epfe100", "epsi100", "evap", "evspsbl", "evspsblsoi", "evspsblveg", "expc", "expcalc", "expcfe", "expsi", "fFire", "fLitterSoil", "fLuc", "fVegLitter", "fbddtalk", "fbddtdic", "fbddtdife", "fbddtdin", "fbddtdip", "fbddtdisi", "fddtalk", "fddtdic", "fddtdife", "fddtdin", "fddtdip", "fddtdisi", "fgco2", "fgo2", "frn", "gpp", "grCongel", "grFrazil", "h2o", "hfds", "hfdsn", "hfls", "hflssi", "hfss", "hfssi", "hur", "hurs", "hus", "huss", "intdic", "intpbsi", "intpcalc", "intpcalcite", "intpdiat", "intpdiaz", "intpn2", "intpnitrate", "intpp", "intppico", "lai", "lwsnl", "masso", "mc", "mrfso", "mrlsl", "mrro", "mrros", "mrso", "mrsofc", "mrsos", "msftbarot", "msftmyz", "msftmyzba", "n2o", "nbp", "nh4", "no3", "npp", "nppLeaf", "nppRoot", "nppWood", "o2", "o2min", "od550aer", "omlmax", "orog", "parasolRefl", "pctisccp", "ph", "phyc", "phycalc", "phydiat", "phydiaz", "phyfe", "phyn", "phyp", "phypico", "physi", "po4", "pr", "prc", "prsn", "prveg", "prw", "ps", "psl", "rGrowth", "rMaint", "ra", "reffclic", "reffclis", "reffclwc", "reffclws", "reffrains", "reffsnows", "rh", "rhopoto", "rhs", "rlds", "rldscs", "rldssi", "rlus", "rlussi", "rlut", "rlutcs", "rsds", "rsdscs", "rsdssi", "rsdt", "rsntds", "rsus", "rsuscs", "rsut", "rsutcs", "rtmt", "sci", "sfcWind", "sftgif", "sftlf", "sftof", "si", "sic", "sit", "snc", "snd", "snm", "snoToIce", "snomelt", "snw", "so", "soga", "sootsn", "sos", "spco2", "strairx", "strairy", "streng", "strocnx", "strocny", "ta", "ta700", "talk", "tas", "tasmax", "tasmin", "tauu", "tauuo", "tauv", "tauvo", "thetao", "thetaoga", "thkcello", "tmelt", "tnhus", "tnhusa", "tnhusc", "tnhusd", "tnhusmp", "tnhusscpbl", "tnt", "tntc", "tntmp", "tntr", "tntscpbl", "tos", "tossq", "tran", "tro3", "ts", "tsice", "tsl", "ua", "umo", "uo", "usi", "va", "vmo", "vo", "volcello", "vsi", "wap", "wmo", "wmosq", "zg", "zo2min", "zooc", "zos", "zosga", "zossga", "zossq", "zostoga", "zsatarag", "zsatcalc"],
-        "variable_long_name": [],
-        "cmip_table": ["3hr", "3hrExtras", "6hrLev", "6hrPlev", "Aclim", "Amon", "AmonExtras", "LIclim", "LImon", "Lclim", "Lmon", "LmonExtras", "OImon", "Oclim", "Omon", "OmonExtras", "Oyr", "OyrExtras", "aero", "cf3hr", "cfDay", "cfMon", "cfOff", "cfSites", "day", "dayExtras", "fx"],
-        "cf_standardname": [],
-        "ensemble": ["r0i0p0", "r10i1p1", "r10i2p1", "r1i1p1", "r1i1p10", "r1i1p11", "r1i1p12", "r1i1p13", "r1i1p14", "r1i1p15", "r1i1p16", "r1i1p17", "r1i1p2", "r1i1p3", "r1i2p1", "r1i2p2", "r2i1p1", "r2i1p10", "r2i1p11", "r2i1p12", "r2i1p13", "r2i1p14", "r2i1p16", "r2i1p17", "r2i2p1", "r3i1p1", "r3i1p10", "r3i1p11", "r3i1p13", "r3i1p14", "r3i1p16", "r3i1p17", "r3i2p1", "r4i1p1", "r4i1p10", "r4i1p11", "r4i1p12", "r4i1p14", "r4i1p15", "r4i1p16", "r4i1p17", "r4i2p1", "r5i1p1", "r5i2p1", "r6i1p1", "r6i1p10", "r6i1p11", "r6i1p12", "r6i1p13", "r6i1p14", "r6i1p15", "r6i1p16", "r6i1p17", "r6i2p1", "r7i1p1", "r7i2p1", "r8i1p1", "r8i2p1", "r9i1p1", "r9i2p1"],
-        "data_node": ["adm07.cmcc.it", "bcccsm.cma.gov.cn", "bmbf-ipcc-ar5.dkrz.de", "cmip-dn1.badc.rl.ac.uk", "cmip5.fio.org.cn", "dapp2p.cccma.ec.gc.ca", "dias-esg-nd.tkl.iis.u-tokyo.ac.jp", "esg-dn1.nsc.liu.se", "esg.bnu.edu.cn", "esg.cnrm-game-meteo.fr", "esg.lasg.ac.cn", "esg01.nersc.gov", "esg2.e-inis.ie", "esgdata.gfdl.noaa.gov", "esgdata1.nccs.nasa.gov", "esgf.extra.cea.fr", "esgnode2.nci.org.au", "noresg.norstore.uio.no", "pcmdi7.llnl.gov", "pcmdi9.llnl.gov", "tds.ucar.edu", "vesg.ipsl.fr"]
-    },
-    "QueryResults": {
-        "Length": 876342,
-        "View": [10, 19],
-        "Results": [
-            {
-                "psl_6hrPlev_CMCC-CM_rcp85_r1i1p1_2006050100-2006051609": {
-                    "time": "UNLIMITED",
-                    "latitude": 240,
-                    "longitude": 480,
-                    "bounds": 2,
-                    "variables": {
-                        "time:units": "days since 2006-5-1",
-                        "time:calendar": "standard",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "psl:standard_name": "air_pressure_at_sea_level",
-                        "psl:long_name": "Sea Level Pressure",
-                        "psl:units": "Pa",
-                        "psl:original_name": "slp",
-                        "psl:cell_measures": "area: areacella",
-                        "psl:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_CMCC-CM_rcp85_r0i0p0.nc areacella: areacella_fx_CMCC-CM_rcp85_r0i0p0.nc",
-                        "psl:history": "2012-02-10T14:49:14Z altered by CMOR: Inverted axis: lat."
-                    },
-                    "institution": "CMCC - Centro Euro-Mediterraneo per i Cambiamenti",
-                    "institute_id": "CMCC",
-                    "experiment_id": "rcp85",
-                    "source": "CMCC-CM",
-                    "model_id": "CMCC-CM",
-                    "forcing": "Nat,GHG,SA,TO,Sl",
-                    "parent_experiment_id": "N/A",
-                    "parent_experiment_rip": "N/A",
-                    "branch_time": 0,
-                    "contact": "Silvio Gualdi (gualdi@bo.ingv.it)",
-                    "history": "Model output postprocessed with CDO 2012-02-10T14:49:14Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "comment": "Equilibrium reached after more than 600-year spin-up at pre-industrial GHG concentrations after which data were output with nominal date of January 1550",
-                    "references": "model described in the documentation at http://www.cmcc.it/data-models/models",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "37b43d78-ab42-4b44-bf1f-3e2eda008183",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2012-02-10T14:49:14Z",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrPlev (27 April 2011) 00b465eee32d6d11a7e57f5cc8e067f8",
-                    "title": "CMCC-CM model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "N/A",
-                    "modeling_realm": "atmos",
-                    "realization": 1,
-                    "cmor_version": "2.7.1"
-                }
-                    },
-            {
-                "ua_6hrLev_bcc-csm1-1-m_rcp85_r1i1p1_201710200000-201712311800": {
-                    "time": "UNLIMITED",
-                    "lev": "26",
-                    "latitude": "160",
-                    "longitude": "320",
-                    "bnds": 2,
-                    "variables": {
-                        "time:bounds": "time_bnds",
-                        "time:units": "days since 2017-01-01 00:00:00",
-                        "time:calendar": "noleap",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lev:bounds": "lev_bnds",
-                        "lev:units": "1",
-                        "lev:axis": "Z",
-                        "lev:positive": "down",
-                        "lev:long_name": "hybrid sigma pressure coordinate",
-                        "lev:standard_name": "atmosphere_hybrid_sigma_pressure_coordinate",
-                        "lev:formula": "p = a*p0 + b*ps",
-                        "lev:formula_terms": "p0: p0 a: a b: b ps: ps",
-                        "lev_bnds:formula": "p = a*p0 + b*ps",
-                        "lev_bnds:standard_name": "atmosphere_hybrid_sigma_pressure_coordinate",
-                        "lev_bnds:units": "1",
-                        "lev_bnds:formula_terms": "p0: p0 a: a_bnds b: b_bnds ps: ps",
-                        "p0:long_name": "vertical coordinate formula term: reference pressure",
-                        "p0:units": "Pa",
-                        "a:long_name": "vertical coordinate formula term: a(k)",
-                        "b:long_name": "vertical coordinate formula term: b(k)",
-                        "ps:standard_name": "surface_air_pressure",
-                        "ps:long_name": "Surface Air Pressure",
-                        "ps:comment": "surface pressure, not mean sea level pressure",
-                        "ps:units": "Pa",
-                        "ps:cell_measures": "area: areacella",
-                        "a_bnds:long_name": "vertical coordinate formula term: a(k+1/2)",
-                        "b_bnds:long_name": "vertical coordinate formula term: b(k+1/2)",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "ua:standard_name": "eastward_wind",
-                        "ua:long_name": "Eastward Wind",
-                        "ua:units": "m s-1",
-                        "ua:original_name": "U",
-                        "ua:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_bcc-csm1-1-m_rcp85_r0i0p0.nc",
-                        "ua:history": "2012-07-12T07:31:30Z altered by CMOR: Inverted axis: lev."
-                    },
-                    "institution": "Beijing Climate Center(BCC),China Meteorological Administration,China",
-                    "institute_id": "BCC",
-                    "experiment_id": "rcp85",
-                    "source": "bcc-csm1-1-m:atmosphere:  BCC_AGCM2.2 (T106L26), land: BCC_AVIM1.1,ocean: MOM4_L40v2 (tripolar, 1 lon x (1-1/3) lat, L40),sea ice: SIS (tripolar,1 lon x (1-1/3) lat)",
-                    "model_id": "bcc-csm1-1-m",
-                    "forcing": "Nat Ant GHG SD Oz Sl SS Ds BC OC",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r1i1p1",
-                    "branch_time": 2006,
-                    "contact": "Dr. Tongwen Wu (twwu@cma.gov.cn)",
-                    "history": "Output from monthly mean data 2012-07-12T07:31:30Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "comment": "The main difference between BCC-CSM1-1-M and BCC-CSM1-1 is their horizontal resolutions of the atmospheric component and the corresponding mask of sea-land. Continuation of historical from 2006 to 2099. Future projection (2006-2099) forced with prescribed concentration scenario of RCP8.5. The carbon cycle in land and ocean component model is considered, but the time-evolution of CO2 concentration in atmospheric component is prescribed.",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "2412b77c-55e2-4796-96a7-8625112fc4f2",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2012-07-12T07:31:30Z",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrLev (11 April 2011) 583cb2bb254a9bc7ec5a7bb9cf07ce44",
-                    "title": "bcc-csm1-1-m model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 1,
-                    "cmor_version": "2.5.6"
-                }
-            },
-            {
-                "va_6hrPlev_MPI-ESM-LR_rcp85_r1i1p1_2015010100-2015123118": {
-                    "time": "UNLIMITED",
-                    "plev": 3,
-                    "latitude": 96,
-                    "longitude": 192,
-                    "bnds": 2,
-                    "variables": {
-                        "time:units": "days since 1850-1-1 00:00:00",
-                        "time:calendar": "proleptic_gregorian",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "plev:units": "Pa",
-                        "plev:axis": "Z",
-                        "plev:positive": "down",
-                        "plev:long_name": "pressure",
-                        "plev:standard_name": "air_pressure",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "va:standard_name": "northward_wind",
-                        "va:long_name": "Northward Wind",
-                        "va:units": "m s-1",
-                        "va:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_MPI-ESM-LR_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "Max Planck Institute for Meteorology",
-                    "institute_id": "MPI-M",
-                    "experiment_id": "rcp85",
-                    "source": "MPI-ESM-LR 2011, URL: http://svn.zmaw.de/svn/cosmos/branches/releases/mpi-esm-cmip5/src/mod, atmosphere: ECHAM6 (REV: 4619), T63L47, land: JSBACH (REV: 4619), ocean: MPIOM (REV: 4619), GR15L40, sea ice: 4619, marine bgc: HAMOCC (REV: 4619),",
-                    "model_id": "MPI-ESM-LR",
-                    "forcing": "GHG Oz SD Sl Vl LU",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r1i1p1",
-                    "branch_time": 56978,
-                    "contact": "cmip5-mpi-esm@dkrz.de",
-                    "history": "Model raw output postprocessing with modelling environment (IMDI) at DKRZ: URL: http://svn-mad.zmaw.de/svn/mad/Model/IMDI/trunk, REV: 3433 2011-07-14T17:26:52Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "references": "ECHAM6: n/a, JSBACH: Raddatz et al., 2007. Will the tropical land biosphere dominate the climate-carbon cycle feedback during the twenty first century? Climate Dynamics, 29, 565-574, doi 10.1007/s00382-007-0247-8,  MPIOM: Marsland et al., 2003. The Max-Planck-Institute global ocean/sea ice model with orthogonal curvilinear coordinates. Ocean Modelling, 5, 91-127,  HAMOCC: http://www.mpimet.mpg.de/fileadmin/models/MPIOM/HAMOCC5.1_TECHNICAL_REPORT.pdf,",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "d183f80c-e376-4721-9b3c-374e08df18e7",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2011-07-14T17:28:04Z",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrPlev (27 April 2011) 00b465eee32d6d11a7e57f5cc8e067f8",
-                    "title": "MPI-ESM-LR model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 1,
-                    "cmor_version": "2.5.9"
-                }
-            },
-            {
-                "psl_6hrPlev_HadGEM2-ES_rcp85_r2i1p1_2093122106-2094122100": {
-                    "time": "UNLIMITED",
-                    "latitude": 145,
-                    "longitude": 192,
-                    "bnds": 2,
-                    "variables": {
-                        "time:units": "days since 1859-12-01",
-                        "time:calendar": "360_day",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "psl:standard_name": "air_pressure_at_sea_level",
-                        "psl:long_name": "Sea Level Pressure",
-                        "psl:units": "Pa",
-                        "psl:original_name": "mo: m01s16i222",
-                        "psl:cell_measures": "area: areacella",
-                        "psl:history": "2012-07-09T12:16:27Z altered by CMOR: replaced missing value flag (-1.07374e+09) with standard missing value (1e+20).",
-                        "psl:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_HadGEM2-ES_rcp85_r0i0p0.nc areacella: areacella_fx_HadGEM2-ES_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "Met Office Hadley Centre, Fitzroy Road, Exeter, Devon, EX1 3PB, UK, (http://www.metoffice.gov.uk)",
-                    "institute_id": "MOHC",
-                    "experiment_id": "rcp85",
-                    "source": "HadGEM2-ES (2009) atmosphere: HadGAM2 (N96L38), ocean: HadGOM2 (lat: 1.0-0.3 lon: 1.0 L40), land-surface/vegetation: MOSES2 and TRIFFID, tropospheric chemistry: UKCA, ocean biogeochemistry: diat-HadOCC",
-                    "model_id": "HadGEM2-ES",
-                    "forcing": "GHG, Oz, SA, LU, Sl, Vl, BC, OC, (GHG = CO2, N2O, CH4, CFCs)",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r2i1p1",
-                    "branch_time": 52560,
-                    "contact": "chris.d.jones@metoffice.gov.uk, ron.kahana@metoffice.gov.uk",
-                    "history": "MOHC pp to CMOR/NetCDF convertor (version 1.10.4) 2012-07-09T12:16:17Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "references": "Bellouin N. et al, (2007) Improved representation of aerosols for HadGEM2. Meteorological Office Hadley Centre, Technical Note 73, March 2007, Collins W.J.  et al, (2008) Evaluation of the HadGEM2 model. Meteorological Office Hadley Centre, Technical Note 74,, McLaren A.J. et al, (2006) Evaluation of the sea ice simulation in a new coupled atmosphere-ocean climate model. Journal of Geophysical Research - Oceans, American Geophysical Union, Vol. 111, C12014, doi:10.1029/2005JC003033., Stott P.A. et al, (2006) Transient climate simulations with the HadGEM1 climate model: Causes of past warming and future climate change. Journal of Climate, American Meteorological Society, Vol. 19, No. 12, pages 2763-2782., Ringer M.A. et al, (2006) The physical properties of the atmosphere in the new Hadley Centre Global Environmental Model, HadGEM1 - Part 2: Aspects of variability and regional climate. Journal of Climate, American Meteorological Society, Vol. 19, No. 7, pages 1302-1326.",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "3f0dfaa6-125b-4dc0-8ce1-9cb054a9ed31",
-                    "mo_runid": "kaadf",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2012-07-09T14:34:39Z",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrPlev (26 July 2011) cce5a250b13747b7af5d1cddcc61873d",
-                    "title": "HadGEM2-ES model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 2,
-                    "cmor_version": "2.7.1"
-                }
-            },
-            {
-                "ua_6hrLev_CanESM2_rcp85_r1i1p1_209301010000-209312311800": {
-                    "lev": 35,
-                    "bnds": 2,
-                    "time": "UNLIMITED",
-                    "latitude": 64,
-                    "longitude": 128,
-                    "variables": {
-                        "ap:long_name": "vertical coordinate formula term: ap(k)",
-                        "ap:units": "Pa",
-                        "ap_bnds:long_name": "vertical coordinate formula term: ap(k+1/2)",
-                        "ap_bnds:units": "Pa",
-                        "time:bounds": "time_bnds",
-                        "time:units": "days since 1850-1-1",
-                        "time:calendar": "365_day",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lev:bounds": "lev_bnds",
-                        "lev:units": "1",
-                        "lev:axis": "Z",
-                        "lev:positive": "down",
-                        "lev:long_name": "hybrid sigma pressure coordinate",
-                        "lev:standard_name": "atmosphere_hybrid_sigma_pressure_coordinate",
-                        "lev:formula": "p = ap + b*ps",
-                        "lev:formula_terms": "ap: ap b: b ps: ps",
-                        "lev_bnds:formula": "p = ap + b*ps",
-                        "lev_bnds:standard_name": "atmosphere_hybrid_sigma_pressure_coordinate",
-                        "lev_bnds:units": "1",
-                        "lev_bnds:formula_terms": "ap: ap_bnds b: b_bnds ps: ps",
-                        "b:long_name": "vertical coordinate formula term: b(k)",
-                        "b:original_units": "1",
-                        "b:history": "2011-04-02T05:52:58Z altered by CMOR: Converted units from '1' to ''.",
-                        "ps:standard_name": "surface_air_pressure",
-                        "ps:long_name": "Surface Air Pressure",
-                        "ps:comment": "surface pressure, not mean sea level pressure",
-                        "ps:units": "Pa",
-                        "ps:cell_measures": "area: areacella",
-                        "b_bnds:long_name": "vertical coordinate formula term: b(k+1/2)",
-                        "b_bnds:original_units": "1",
-                        "b_bnds:history": "2011-04-02T05:52:58Z altered by CMOR: Converted units from '1' to ''.",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "ua:standard_name": "eastward_wind",
-                        "ua:long_name": "Eastward Wind",
-                        "ua:units": "m s-1",
-                        "ua:original_name": "U",
-                        "ua:history": "2011-04-02T05:52:58Z altered by CMOR: replaced missing value flag (1e+38) with standard missing value (1e+20). 2011-04-02T05:52:58Z altered by CMOR: Inverted axis: lev.",
-                        "ua:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_CanESM2_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "CCCma (Canadian Centre for Climate Modelling and Analysis, Victoria, BC, Canada)",
-                    "institute_id": "CCCma",
-                    "experiment_id": "rcp85",
-                    "source": "CanESM2 2010 atmosphere: CanAM4 (AGCM15i, T63L35) ocean: CanOM4 (OGCM4.0, 256x192L40) and CMOC1.2 sea ice: CanSIM1 (Cavitating Fluid, T63 Gaussian Grid) land: CLASS2.7 and CTEM1",
-                    "model_id": "CanESM2",
-                    "forcing": "GHG,Oz,SA,BC,OC,LU,Sl (GHG includes CO2,CH4,N2O,CFC11,effective CFC12. Sl is the repeat of the 23rd solar cycle, years 1997-2008, after year 2008.)",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r1i1p1",
-                    "branch_time": 56940,
-                    "contact": "cccma_info@ec.gc.ca",
-                    "references": "http://www.cccma.ec.gc.ca/models",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "48df1522-3fda-4146-abd8-3fc1901dcc19",
-                    "branch_time_YMDH": "2006:01:01:00",
-                    "CCCma_runid": "IDR",
-                    "CCCma_parent_runid": "IGM",
-                    "CCCma_data_licence": "1) GRANT OF LICENCE - The Government of Canada (Environment Canada) is the owner of all intellectual property rights (including copyright) that may exist in this Data product. You (as The Licensee) are hereby granted a non-exclusive, non-assignable, non-transferable unrestricted licence to use this data product for any purpose including the right to share these data with others and to make value-added and derivative products from it. This licence is not a sale of any or all of the owner's rights. 2) NO WARRANTY - This Data product is provided as-is, it has not been designed or prepared to meet the Licensee's particular requirements. Environment Canada makes no warranty, either express or implied, including but not limited to, warranties of merchantability and fitness for a particular purpose. In no event will Environment Canada be liable for any indirect, special, consequential or other damages attributed to the Licensee's use of the Data product.",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2011-04-02T05:52:58Z",
-                    "history": "Fri Oct  7 19:57:13 2011: ncap2 -c -O -S div_ap_100 orig_ua_6hrLev_CanESM2_rcp85_r1i1p1_209301010000-209312311800.nc ua_6hrLev_CanESM2_rcp85_r1i1p1_209301010000-209312311800.nc 2011-04-02T05:52:58Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrLev (28 March 2011) 581a244c03c6226a7b266fdcf0d501b7",
-                    "title": "CanESM2 model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 1,
-                    "cmor_version": "2.5.4",
-                    "nco_openmp_thread_number": 1
-                }
-            },
-            {
-                "va_6hrPlev_IPSL-CM5A-MR_rcp85_r1i1p1_2056010103-2065123121": {
-                    "time": "UNLIMITED",
-                    "plev": 3,
-                    "latitude": 143,
-                    "longitude": 144,
-                    "bnds": 2,
-                    "variables": {
-                        "time:units": "days since 2006-01-01 00:00:00",
-                        "time:calendar": "noleap",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "plev:units": "Pa",
-                        "plev:axis": "Z",
-                        "plev:positive": "down",
-                        "plev:long_name": "pressure",
-                        "plev:standard_name": "air_pressure",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "va:standard_name": "northward_wind",
-                        "va:long_name": "Northward Wind",
-                        "va:units": "m s-1",
-                        "va:original_name": "va",
-                        "va:history": "2011-11-05T14:03:28Z altered by CMOR: replaced missing value flag (9.96921e+36) with standard missing value (1e+20). 2011-11-05T14:03:57Z altered by CMOR: Inverted axis: lat.",
-                        "va:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_IPSL-CM5A-MR_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "IPSL (Institut Pierre Simon Laplace, Paris, France)",
-                    "institute_id": "IPSL",
-                    "experiment_id": "rcp85",
-                    "source": "IPSL-CM5A-MR (2010) : atmos : LMDZ4 (LMDZ4_v5, 144x143x39), ocean : ORCA2 (NEMOV2_3, 2x2L31), seaIce : LIM2 (NEMOV2_3), ocnBgchem : PISCES (NEMOV2_3), land : ORCHIDEE (orchidee_1_9_4_AR5)",
-                    "model_id": "IPSL-CM5A-MR",
-                    "forcing": "Nat,Ant,GHG,SA,Oz,LU,SS,Ds,BC,MD,OC,AA",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r1i1p1",
-                    "branch_time": 2005,
-                    "contact": "ipsl-cmip5 _at_ ipsl.jussieu.fr Data manager : Sebastien Denvil",
-                    "comment": "This 21th century simulation has been forced by prescribed concentration following the rcp 8.5 scenario.",
-                    "references": "Model documentation and further reference available here : http://icmc.ipsl.fr",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "24d0885e-46e6-44d3-8296-2e2a72d1fd59",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2011-11-05T14:03:57Z",
-                    "history": "2011-11-05T14:03:57Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrPlev (31 January 2011) 2486865d573b5e4add809e0c04e17345",
-                    "title": "IPSL-CM5A-MR model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 1,
-                    "cmor_version": "2.7.1"
-                }
-            },
-            {
-                "ps_6hrLev_GISS-E2-R_rcp85_r2i1p3_206601010600-207101010000": {
-                    "time": "UNLIMITED",
-                    "latitude": 90,
-                    "longitude": 144,
-                    "bnds": 2,
-                    "variables": {
-                        "time:bounds": "time_bnds",
-                        "time:units": "days since 2066-1-1",
-                        "time:calendar": "365_day",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "ps:standard_name": "surface_air_pressure",
-                        "ps:long_name": "Surface Air Pressure",
-                        "ps:comment": "surface pressure, not mean sea level pressure",
-                        "ps:units": "Pa",
-                        "ps:original_name": "dummy",
-                        "ps:cell_measures": "area: areacella",
-                        "ps:history": "2014-01-02T15:46:04Z altered by CMOR: replaced missing value flag (-1e+30) with standard missing value (1e+20).",
-                        "ps:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_GISS-E2-R_rcp85_r0i0p0.nc areacella: areacella_fx_GISS-E2-R_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "NASA/GISS (Goddard Institute for Space Studies) New York, NY",
-                    "institute_id": "NASA-GISS",
-                    "experiment_id": "rcp85",
-                    "source": "GISS-E2-R-E134TcadiRCP85bF40oQ32 Atmosphere: GISS-E2, Ocean: R",
-                    "model_id": "GISS-E2-R",
-                    "forcing": "GHG, LU, Sl, BC, OC, SA, Oz (also includes BC on snow - Nitrate aerosols - interactive CH4)",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r2i1p3",
-                    "branch_time": 2006,
-                    "contact": "Kenneth Lo (cdkkl@giss.nasa.gov)",
-                    "references": "http://data.giss.nasa.gov/modelE/ar5",
-                    "initialization_method": 1,
-                    "physics_version": 3,
-                    "tracking_id": "894e03dd-fba8-4826-b3fb-c1898b071984",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2014-01-02T15:46:04Z",
-                    "history": "2014-01-02T15:46:04Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrLev (27 April 2011) cf08abb8c40d2c5d1c95297b569db0e6",
-                    "title": "GISS-E2-R model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 2,
-                    "cmor_version": "2.5.7"
-                }
-            },
-            {
-                "ua_6hrPlev_CSIRO-Mk3-6-0_rcp85_r9i1p1_210001010600-210101010000": {
-                    "time": "UNLIMITED",
-                    "plev": 3,
-                    "latitude": 96,
-                    "longitude": 192,
-                    "bnds": 2,
-                    "variables": {
-                        "time:units": "days since 1850-01-01 00:00:00",
-                        "time:calendar": "noleap",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "plev:units": "Pa",
-                        "plev:axis": "Z",
-                        "plev:positive": "down",
-                        "plev:long_name": "pressure",
-                        "plev:standard_name": "air_pressure",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "ua:standard_name": "eastward_wind",
-                        "ua:long_name": "Eastward Wind",
-                        "ua:units": "m s-1",
-                        "ua:original_name": "u01_u18",
-                        "ua:history": "2012-06-06T07:03:10Z altered by CMOR: replaced missing value flag (-7.77778e+06) with standard missing value (1e+20).",
-                        "ua:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_CSIRO-Mk3-6-0_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "Australian Commonwealth Scientific and Industrial Research Organization (CSIRO) Marine and Atmospheric Research (Melbourne, Australia) in collaboration with the Queensland Climate Change Centre of Excellence (QCCCE) (Brisbane, Australia)",
-                    "institute_id": "CSIRO-QCCCE",
-                    "experiment_id": "rcp85",
-                    "source": "CSIRO-Mk3-6-0 2010 atmosphere: AGCM v7.3.8 (T63 spectral, 1.875 degrees EW x approx. 1.875 degrees NS, 18 levels), ocean: GFDL MOM2.2 (1.875 degrees EW x approx. 0.9375 degrees NS, 31 levels)",
-                    "model_id": "CSIRO-Mk3-6-0",
-                    "forcing": "Ant,Nat (RCP 8.5)",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r9i1p1",
-                    "branch_time": 56940,
-                    "contact": "Project leaders: Stephen Jeffrey (Stephen.Jeffrey@qld.gov.au) & Leon Rotstayn (Leon.Rotstayn@csiro.au). Project team: Mark Collier (Mark.Collier@csiro.au: diagnostics & post-processing), Stacey Dravitzki (Stacey.Dravitzki@csiro.au: post-processing), Carlo Hamalainen (Carlo.Hamalainen@qld.gov.au: post-processing), Steve Jeffrey (Stephen.Jeffrey@qld.gov.au: modeling & post-processing), Chris Moeseneder (Chris.Moeseneder@csiro.au: post-processing), Leon Rotstayn (Leon.Rotstayn@csiro.au: modeling & atmos. physics), Jozef Syktus (Jozef.Syktus@qld.gov.au: model evaluation), Kenneth Wong (Kenneth.Wong@qld.gov.au: data management), Contributors: Martin Dix (Martin.Dix@csiro.au: tech. support), Hal Gordon (Hal.Gordon@csiro.au: atmos. dynamics), Eva Kowalczyk (Eva.Kowalczyk@csiro.au: land-surface), Siobhan O'Farrell (Siobhan.OFarrell@csiro.au: ocean & sea-ice)",
-                    "history": "Forcing datasets for the relevant month/year are used where available. Exceptions are: ozone data from 2099 are used for the period 2100-2300, aerosol emissions (and their impact on snow albedo) from 2100 are used for the period 2101-2300.Model level data was vertically interpolated to prescribed pressure levels using linear interpolation. The missing value was assigned to locations where the pressure surface is underground. 2012-06-06T07:03:10Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "comment": "Model output post-processed by the CSIRO-QCCCE CMIP5 Data post-processor for the IPCC Fifth Assessment.",
-                    "references": "a) Rotstayn, L., Collier, M., Dix, M., Feng, Y., Gordon, H., O'Farrell, S., Smith, I. and Syktus, J. 2010. Improved simulation of Australian climate and ENSO-related climate variability in a GCM with an interactive aerosol treatment. Int. J. Climatology, vol 30(7), pp1067-1088, DOI 10.1002/joc.1952 b) Please refer to online documentation at: http://cmip-pcmdi.llnl.gov/cmip5/",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "730ac35f-ac55-45c7-9abf-940f22928165",
-                    "version_number": "v20120323",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2012-06-06T07:03:10Z",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrPlev (27 April 2011) 34ae2c93d41ed0ba4f8eeae8ccf1eaa4",
-                    "title": "CSIRO-Mk3-6-0 model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 9,
-                    "cmor_version": "2.6.0"
-                }
-            },
-            {
-                "psl_6hrPlev_NorESM1-M_rcp85_r1i1p1_2006010100-2015123118": {
-                    "time": "UNLIMITED",
-                    "latitude": 96,
-                    "longitude": 144,
-                    "bnds": 2,
-                    "variables": {
-                        "time:units": "days since 2006-01-01 00:00:00",
-                        "time:calendar": "noleap",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "psl:standard_name": "air_pressure_at_sea_level",
-                        "psl:long_name": "Sea Level Pressure",
-                        "psl:units": "Pa",
-                        "psl:original_name": "PSL",
-                        "psl:cell_measures": "area: areacella",
-                        "psl:history": "2011-06-14T14:02:06Z altered by CMOR: replaced missing value flag (1e+20) with standard missing value (1e+20). 2011-06-14T14:02:07Z altered by CMOR: Converted type from 'd' to 'f'.",
-                        "psl:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_NorESM1-M_rcp85_r0i0p0.nc areacella: areacella_fx_NorESM1-M_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "Norwegian Climate Centre",
-                    "institute_id": "NCC",
-                    "experiment_id": "rcp85",
-                    "source": "NorESM1-M 2011  atmosphere: CAM-Oslo (CAM4-Oslo-noresm-ver1_cmip5-r112, f19L26),  ocean: MICOM (MICOM-noresm-ver1_cmip5-r112, gx1v6L53),  sea ice: CICE (CICE4-noresm-ver1_cmip5-r112),  land: CLM (CLM4-noresm-ver1_cmip5-r112)",
-                    "model_id": "NorESM1-M",
-                    "forcing": "GHG, SA, Oz, Sl, BC, OC",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r1i1p1",
-                    "branch_time": 56940,
-                    "contact": "Please send any requests or bug reports to noresm-ncc@met.no.",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "ce2a6266-481f-412d-958e-c8b0d3cde60a",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2011-06-14T14:02:07Z",
-                    "history": "2011-06-14T14:02:07Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrPlev (27 April 2011) 00b465eee32d6d11a7e57f5cc8e067f8",
-                    "title": "NorESM1-M model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 1,
-                    "cmor_version": "2.6.0"
-                }
-            },
-            {
-                "va_6hrLev_CCSM4_rcp85_r6i1p1_2009040100-2009063018": {
-                    "time": "UNLIMITED",
-                    "lev": 26,
-                    "latitude": 192,
-                    "longitude": 288,
-                    "bnds": 2,
-                    "variables": {
-                        "time:units": "days since 2005-01-01 00:00:00",
-                        "time:calendar": "noleap",
-                        "time:axis": "T",
-                        "time:long_name": "time",
-                        "time:standard_name": "time",
-                        "lev:bounds": "lev_bnds",
-                        "lev:units": "1",
-                        "lev:axis": "Z",
-                        "lev:positive": "down",
-                        "lev:long_name": "hybrid sigma pressure coordinate",
-                        "lev:standard_name": "atmosphere_hybrid_sigma_pressure_coordinate",
-                        "lev:formula": "p = a*p0 + b*ps",
-                        "lev:formula_terms": "p0: p0 a: a b: b ps: ps",
-                        "lev_bnds:formula": "p = a*p0 + b*ps",
-                        "lev_bnds:standard_name": "atmosphere_hybrid_sigma_pressure_coordinate",
-                        "lev_bnds:units": "1",
-                        "lev_bnds:formula_terms": "p0: p0 a: a_bnds b: b_bnds ps: ps",
-                        "p0:long_name": "vertical coordinate formula term: reference pressure",
-                        "p0:units": "Pa",
-                        "a:long_name": "vertical coordinate formula term: a(k)",
-                        "b:long_name": "vertical coordinate formula term: b(k)",
-                        "ps:standard_name": "surface_air_pressure",
-                        "ps:long_name": "Surface Air Pressure",
-                        "ps:comment": "surface pressure, not mean sea level pressure",
-                        "ps:units": "Pa",
-                        "ps:cell_measures": "area: areacella",
-                        "a_bnds:long_name": "vertical coordinate formula term: a(k+1/2)",
-                        "b_bnds:long_name": "vertical coordinate formula term: b(k+1/2)",
-                        "lat:bounds": "lat_bnds",
-                        "lat:units": "degrees_north",
-                        "lat:axis": "Y",
-                        "lat:long_name": "latitude",
-                        "lat:standard_name": "latitude",
-                        "lon:bounds": "lon_bnds",
-                        "lon:units": "degrees_east",
-                        "lon:axis": "X",
-                        "lon:long_name": "longitude",
-                        "lon:standard_name": "longitude",
-                        "va:standard_name": "northward_wind",
-                        "va:long_name": "Northward Wind",
-                        "va:units": "m s-1",
-                        "va:original_name": "V,PS",
-                        "va:comment": "V no change",
-                        "va:original_units": "m/s",
-                        "va:history": "2012-05-08T23:56:28Z altered by CMOR: Converted units from 'ms' to 'm s-1'. 2012-05-08T23:56:28Z altered by CMOR: replaced missing value flag (-1e+32) with standard missing value (1e+20). 2012-05-08T23:57:40Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:01:05Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:04:17Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:07:32Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:12:00Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:15:10Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:18:30Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:21:43Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:26:04Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:29:15Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:32:19Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:35:19Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:40:07Z altered by CMOR: Inverted axis: lev. 2012-05-09T00:43:50Z altered by CMOR: Inverted axis: lev.",
-                        "va:associated_files": "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_atmos_fx_CCSM4_rcp85_r0i0p0.nc"
-                    },
-                    "institution": "NCAR (National Center for Atmospheric Research) Boulder, CO, USA",
-                    "institute_id": "NCAR",
-                    "experiment_id": "rcp85",
-                    "source": "CCSM4",
-                    "model_id": "CCSM4",
-                    "forcing": "Sl GHG SS Ds SA BC MD OC Oz AA",
-                    "parent_experiment_id": "historical",
-                    "parent_experiment_rip": "r6i1p1",
-                    "branch_time": 20,
-                    "contact": "cesm_data@ucar.edu",
-                    "comment": "CESM home page: http://www.cesm.ucar.edu",
-                    "references": "Gent P. R., et.al. 2011: The Community Climate System Model version 4. J. Climate, doi: 10.1175/2011JCLI4083.1",
-                    "initialization_method": 1,
-                    "physics_version": 1,
-                    "tracking_id": "c8d8cde8-0e31-4a17-8501-51393743d5c1",
-                    "acknowledgements": "The CESM project is supported by the National Science Foundation and the Office of Science (BER) of the U.S. Department of Energy. NCAR is sponsored by the National Science Foundation. Computing resources were provided by the Climate Simulation Laboratory at the NCAR Computational and Information Systems Laboratory (CISL), sponsored by the National Science Foundation and other agencies.",
-                    "cesm_casename": "b40.rcp8_5.1deg.007",
-                    "cesm_repotag": "ccsm4_0_beta53",
-                    "cesm_compset": "BRCP85CN",
-                    "resolution": "f09_g16 (0.9x1.25_gx1v6)",
-                    "forcing_note": "Additional information on the external forcings used in this experiment can be found at http://www.cesm.ucar.edu/CMIP5/forcing_information",
-                    "processed_by": "strandwg on mirage2 at 20120508  -175628.897",
-                    "processing_code_information": "Last Changed Rev: 748 Last Changed Date: 2012-05-08 15:52:41 -0600 (Tue, 08 May 2012) Repository UUID: d2181dbe-5796-6825-dc7f-cbd98591f93d",
-                    "product": "output",
-                    "experiment": "RCP8.5",
-                    "frequency": "6hr",
-                    "creation_date": "2012-05-09T00:43:50Z",
-                    "history": "2012-05-08T23:57:40Z CMOR rewrote data to comply with CF standards and CMIP5 requirements.",
-                    "Conventions": "CF-1.4",
-                    "project_id": "CMIP5",
-                    "table_id": "Table 6hrLev (12 January 2012) 3c5c744334546e0d80549512c0c61cfe",
-                    "title": "CCSM4 model output prepared for CMIP5 RCP8.5",
-                    "parent_experiment": "historical",
-                    "modeling_realm": "atmos",
-                    "realization": 6,
-                    "cmor_version": "2.8.1"
-                }
-            }
-        ]
-    }
-}
diff --git a/client/catalog/search_catagories.json b/client/catalog/search_catagories.json
deleted file mode 100644
index 8d902ad..0000000
--- a/client/catalog/search_catagories.json
+++ /dev/null
@@ -1,539 +0,0 @@
-{
-    "SearchCatagories": {
-        "activity": [
-            "CMIP5"
-        ],
-        "product": [
-            "output1",
-            "output2",
-            "restricted",
-            "unsolicited"
-        ],
-        "organization": [
-            "BCC",
-            "BNU",
-            "CCCMA",
-            "CMCC",
-            "CNRM-CERFACS",
-            "COLA-CFS",
-            "CSIRO-BOM",
-            "CSIRO-QCCCE",
-            "FIO",
-            "ICHEC",
-            "INM",
-            "INPE",
-            "IPSL",
-            "LASG-CESS",
-            "LASG-IAP",
-            "MIROC",
-            "MOHC",
-            "MPI-M",
-            "MRI",
-            "NASA-GISS",
-            "NASA-GMAO",
-            "NCAR",
-            "NCC",
-            "NCEP",
-            "NICAM",
-            "NIMR-KMA",
-            "NOAA-GFDL",
-            "NSF-DOE-NCAR",
-            "SMHI",
-            "UNSW"
-        ],
-        "model": [
-            "ACCESS1.0",
-            "ACCESS1.3",
-            "BCC - CSM1.1",
-            "BCC - CSM1.1(m)",
-            "BNU - ESM",
-            "CCSM4",
-            "CESM1(BGC)",
-            "CESM1(CAM5)",
-            "CESM1(CAM5.1, FV2)",
-            "CESM1(FASTCHEM)",
-            "CESM1(WACCM)",
-            "CFSv2 - 2011",
-            "CMCC - CESM",
-            "CMCC - CM",
-            "CMCC - CMS",
-            " CNRM - CM5",
-            "CNRM - CM5 - 2",
-            "CSIRO - Mk3.6.0",
-            "CSIRO - Mk3L - 1 - 2",
-            "CanAM4",
-            "CanCM4",
-            "CanESM2",
-            "EC - EARTH",
-            "FGOALS - g2",
-            "FGOALS - gl",
-            "FGOALS - s2",
-            "FIO - ESM",
-            "GEOS - 5",
-            "GFDL - CM2.1",
-            "GFDL - CM3",
-            "GFDL - ESM2G",
-            "GFDL - ESM2M",
-            "GFDL - HIRAM - C180",
-            "GFDL - HIRAM - C360",
-            "GISS - E2 - H",
-            "GISS - E2 - H - CC",
-            "GISS - E2 - R",
-            "GISS - E2 - R - CC",
-            "HadCM3",
-            "HadGEM2 - A",
-            "HadGEM2 - AO",
-            "HadGEM2 - CC ",
-            "HadGEM2 - ES",
-            "INM - CM4",
-            "IPSL - CM5A - LR",
-            "IPSL - CM5A - MR",
-            "IPSL - CM5B - LR",
-            "MIROC - ESM",
-            "MIROC - ESM - CHEM",
-            "MIROC4h",
-            "MIROC5",
-            "MPI - ESM - LR",
-            "MPI - ESM - MR",
-            "MPI - ESM - P",
-            "MRI - AGCM3.2H",
-            "MRI - AGCM3.2S",
-            "MRI - CGCM3",
-            "MRI - ESM1",
-            "NICAM - 09",
-            "NorESM1 - M",
-            "NorESM1 - ME"
-        ],
-        "experiment": [
-            "abrupt4xCO2",
-            "amip",
-            "amip4K",
-            "amip4xCO2",
-            "amipFuture",
-            "aqua4K",
-            "aqua4xCO2",
-            "aquaControl",
-            "decadal1959",
-            "decadal1960",
-            "decadal1961",
-            "decadal1962",
-            "decadal1963",
-            "decadal1964",
-            "decadal1965",
-            "decadal1966",
-            "decadal1967",
-            "decadal1968",
-            "decadal1969",
-            "decadal1970",
-            "decadal1971",
-            "decadal1972",
-            "decadal1973",
-            "decadal1974",
-            "decadal1975",
-            "decadal1976",
-            "decadal1977",
-            "decadal1978",
-            "decadal1979",
-            "decadal1980",
-            "decadal1981",
-            "decadal1982",
-            "decadal1983",
-            "decadal1984",
-            "decadal1985",
-            "decadal1986",
-            "decadal1987",
-            "decadal1988",
-            "decadal1989",
-            "decadal1990",
-            "decadal1991",
-            "decadal1992",
-            "decadal1993",
-            "decadal1994",
-            "decadal1995",
-            "decadal1996",
-            "decadal1997",
-            "decadal1998",
-            "decadal1999",
-            "decadal2000",
-            "decadal2001",
-            "decadal2002",
-            "decadal2003",
-            "decadal2004",
-            "decadal2005",
-            "decadal2006",
-            "decadal2007",
-            "decadal2008",
-            "decadal2009",
-            "decadal2010",
-            " decadal2011",
-            "decadal2012",
-            "esmControl",
-            "esmFdbk1",
-            "esmFdbk2",
-            "esmFixClim1",
-            "esmFixClim2",
-            "esmHistorical",
-            "esmrcp85",
-            "historical",
-            "historicalExt",
-            "historicalGHG",
-            "historicalMisc",
-            "historicalNat",
-            "lgm",
-            "midHolocene",
-            "noVolc1960",
-            "noVolc1965",
-            "noVolc1970",
-            "noVolc1975",
-            "noVolc1985",
-            "noVolc1990",
-            "noVolc1995",
-            "noVolc2000",
-            "noVolc2005",
-            "past1000",
-            "piControl",
-            "rcp26",
-            "rcp45",
-            "rcp60",
-            "rcp85",
-            "sst2030",
-            "sst2090",
-            "sst2090rcp45",
-            "sstClim",
-            "sstClim4xCO2",
-            "sstClimAerosol",
-            "sstClimSulfate",
-            "volcIn2010"
-        ],
-        "frequency": [
-            "3hr",
-            "6hr",
-            "day",
-            "fx",
-            "mon",
-            "monClim",
-            "subhr",
-            "yr"
-        ],
-        "modeling_realm": [
-            "aerosol",
-            "atmos",
-            "land",
-            "landIce",
-            "ocean",
-            "seaIce"
-        ],
-        "variable_name": [
-            "agessc",
-            "albisccp",
-            "areacella",
-            "areacello",
-            "bmelt",
-            "burntArea",
-            "cCwd",
-            "cLeaf",
-            "cLitter",
-            "cMisc",
-            "cProduct",
-            "cRoot",
-            "cSoil",
-            "cSoilFast",
-            "cSoilMedium",
-            "cSoilSlow",
-            "cVeg",
-            "cWood",
-            "ccb",
-            "cct",
-            "cfc11",
-            "ch4",
-            "chl",
-            "chlcalc",
-            "chldiat",
-            "chldiaz",
-            "chlpico",
-            "ci",
-            "cl",
-            "clcalipso",
-            "clhcalipso",
-            "cli",
-            "clic",
-            "clis",
-            "clisccp",
-            "clivi",
-            "cllcalipso",
-            "clmcalipso",
-            "clt",
-            "cltcalipso",
-            "cltisccp",
-            "clw",
-            "clwc",
-            "clws",
-            "clwvi",
-            "co2",
-            "co3",
-            "co3satarag",
-            "co3satcalc",
-            "deptho",
-            "dfe",
-            "dissic",
-            "dissoc",
-            "divice",
-            "dpco2",
-            "epc100",
-            "epcalc100",
-            "epfe100",
-            "epsi100",
-            "evap",
-            "evspsbl",
-            "expc",
-            "expcalc",
-            "expcfe",
-            "expsi",
-            "fFire",
-            "fLitterSoil",
-            "fLuc",
-            "fVegLitter",
-            "fbddtalk",
-            "fbddtdic",
-            "fbddtdife",
-            "fbddtdin",
-            "fbddtdip",
-            "fbddtdisi",
-            "fddtalk",
-            "fddtdic",
-            "fddtdife",
-            "fddtdin",
-            "fddtdip",
-            "fddtdisi",
-            "fgco2",
-            "fgo2",
-            "frn",
-            "gpp",
-            "grCongel",
-            "grFrazil",
-            "h2o",
-            "hflssi",
-            "hfss",
-            "hfssi",
-            "hur",
-            "hurs",
-            "hus",
-            "huss",
-            "intdic",
-            "intpbsi",
-            "intpcalc",
-            "intpcalcite",
-            "intpdiat",
-            "intpdiaz",
-            "intpn2",
-            "intpnitrate",
-            "intpp",
-            "intppico",
-            "lai",
-            "lwsnl",
-            "masso",
-            "mc",
-            "mrfso",
-            "mrlsl",
-            "mrro",
-            "mrros",
-            "mrso",
-            "mrsofc",
-            "mrsos",
-            "msftbarot",
-            "msftmyz",
-            "msftmyzba",
-            "n2o",
-            "nbp",
-            "nh4",
-            "no3",
-            "npp",
-            "nppLeaf",
-            "nppRoot",
-            "nppWood",
-            "o2",
-            "o2min",
-            "od550aer",
-            "omlmax",
-            "orog",
-            "ph",
-            "phyc",
-            "phyfe",
-            "phyn",
-            "phyp",
-            "phypico",
-            "physi",
-            "po4",
-            "pr",
-            "prc",
-            "prsn",
-            "prveg",
-            "prw",
-            "ps",
-            "psl",
-            "rGrowth",
-            "rMaint",
-            "ra",
-            "reffclic",
-            "reffclis",
-            "reffclwc",
-            "reffclws",
-            "reffrains",
-            "rlds",
-            "rldscs",
-            "rldssi",
-            "rlus",
-            "rlussi",
-            "rlut",
-            "rlutcs",
-            "rsds",
-            "rsdscs",
-            "rsdssi",
-            "rsdt",
-            "rsntds",
-            "rsus",
-            "rsuscs",
-            "rsut",
-            "rsutcs",
-            "rtmt",
-            "sci",
-            "sfcWind",
-            "sftgif",
-            "sftlf",
-            "sftof",
-            "si",
-            "sic",
-            "sit",
-            "snc",
-            "snoToIce",
-            "snomelt",
-            "snw",
-            "so",
-            "soga",
-            "sootsn",
-            "sos",
-            "spco2",
-            "strairx",
-            "strairy",
-            "streng",
-            "strocnx",
-            "strocny",
-            "ta",
-            "ta700",
-            "talk",
-            "tas",
-            "tasmax",
-            "tasmin",
-            "tauu",
-            "tauuo",
-            "tauv",
-            "tauvo",
-            "thetao",
-            "thetaoga",
-            "thkcello",
-            "tmelt",
-            "tnhus",
-            "tnhusa",
-            "tnhusc",
-            "tnhusd",
-            "tnhusmp",
-            "tnhusscpbl",
-            "tnt",
-            "tntc",
-            "tntmp",
-            "tntr",
-            "tntscpbl",
-            "tos",
-            "tossq",
-            "tran",
-            "tro3",
-            "ts",
-            "tsice",
-            "tsl",
-            "ua",
-            "umo",
-            "uo",
-            "usi",
-            "va",
-            "vmo",
-            "vo",
-            "volcello",
-            "vsi",
-            "wap",
-            "wmo",
-            "wmosq",
-            "zg",
-            "zo2min",
-            "zooc",
-            "zos",
-            "zosga",
-            "zossga",
-            "zossq",
-            "zostoga",
-            "zsatarag",
-            "zsatcalc"
-        ],
-        "ensemble": [
-            "r0i0p0",
-            "r10i1p1",
-            "r10i2p1",
-            "r1i1p1",
-            "r1i1p10",
-            "r1i1p11",
-            "r1i1p12",
-            "r1i1p13",
-            "r1i1p14",
-            "r1i1p15",
-            "r1i1p16",
-            "r1i1p17",
-            "r1i1p2",
-            "r1i1p3",
-            "r1i2p1",
-            "r1i2p2",
-            "r2i1p1",
-            "r2i1p10",
-            "r2i1p11",
-            "r2i1p12",
-            "r2i1p13",
-            "r2i1p14",
-            "r2i1p16",
-            "r2i1p17",
-            "r2i2p1",
-            "r3i1p1",
-            "r3i1p10",
-            "r3i1p11",
-            "r3i1p13",
-            "r3i1p14",
-            "r3i1p16",
-            "r3i1p17",
-            "r3i2p1",
-            "r4i1p1",
-            "r4i1p10",
-            "r4i1p11",
-            "r4i1p12",
-            "r4i1p14",
-            "r4i1p15",
-            "r4i1p16",
-            "r4i1p17",
-            "r4i2p1",
-            "r5i1p1",
-            "r5i2p1",
-            "r6i1p1",
-            "r6i1p10",
-            "r6i1p11",
-            "r6i1p12",
-            "r6i1p13",
-            "r6i1p14",
-            "r6i1p15",
-            "r6i1p16",
-            "r6i1p17",
-            "r6i2p1",
-            "r7i1p1",
-            "r7i2p1",
-            "r8i1p1",
-            "r8i2p1",
-            "r9i1p1",
-            "r9i2p1"
-        ]
-    }
-}
\ No newline at end of file
diff --git a/client/gulpfile.js b/client/gulpfile.js
new file mode 100644
index 0000000..53e2f10
--- /dev/null
+++ b/client/gulpfile.js
@@ -0,0 +1,6 @@
+var gulp = require('gulp');
+
+gulp.task('default, function() {
+
+});
+
diff --git a/client/package.json b/client/package.json
new file mode 100644
index 0000000..f15889c
--- /dev/null
+++ b/client/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "ndn-atmos",
+  "description": "A frontend for the ndn-atmos project",
+  "version": "2.1.0",
+  "license": "MIT",
+  "author": {
+    "name": "Tyler Scott",
+    "email": "tyduptyler13@gmail.com",
+    "url": "myuplay.com"
+  },
+  "contributors": [],
+  "scripts": {
+    "build": "gulp",
+    "host": "http-server -c-1 -p 5555 -a ::1; x-www-browser http://localhost:5555/catalog"
+  },
+  "devDependencies": {
+    "gulp": "^3.9.0",
+    "http-server": "^0.8.0"
+  }
+}
