diff --git a/sdks/swift/UsergridSDK.podspec b/UsergridSDK.podspec
similarity index 96%
rename from sdks/swift/UsergridSDK.podspec
rename to UsergridSDK.podspec
index a4ee606..136ecd5 100644
--- a/sdks/swift/UsergridSDK.podspec
+++ b/UsergridSDK.podspec
@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name = 'UsergridSDK'
-  s.version = '2.1.0'
+  s.version = '2.1.1'
   s.summary = 'Usergrid SDK written in Swift'
   s.homepage = 'https://github.com/apache/usergrid/tree/master/sdks/swift'
   s.license = 'Apache 2.0'
diff --git a/content/community/index.html b/content/community/index.html
index 2ff02f8..0a27b5ea 100644
--- a/content/community/index.html
+++ b/content/community/index.html
@@ -565,8 +565,7 @@
         </div> 
         <div class="row">
             <div id="copyright">
-                <img src="/img/egg-logo.png" /><br/><br/>
-                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                <p>Copyright © The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                 Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                 <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> .</p>
             </div>
diff --git a/content/docs/README.html b/content/docs/README.html
index 78f090b..aab88cd 100644
--- a/content/docs/README.html
+++ b/content/docs/README.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Apache Usergrid Documentation &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Apache Usergrid Documentation &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="index.html"/> 
 
   
   <script src="_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -357,7 +357,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'./',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/assets-and-files/file-storage-configuration.html b/content/docs/assets-and-files/file-storage-configuration.html
index 464b11a..cc20aba 100644
--- a/content/docs/assets-and-files/file-storage-configuration.html
+++ b/content/docs/assets-and-files/file-storage-configuration.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>File storage configuration &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>File storage configuration &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -303,7 +303,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/assets-and-files/folders.html b/content/docs/assets-and-files/folders.html
index 1dbab98..1ca8653 100644
--- a/content/docs/assets-and-files/folders.html
+++ b/content/docs/assets-and-files/folders.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Folders &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Folders &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Counters &amp; events" href="../counters-and-events/events-and-counters.html"/>
         <link rel="prev" title="Retrieving assets" href="retrieving-assets.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -372,7 +372,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/assets-and-files/legacy-asset-support.html b/content/docs/assets-and-files/legacy-asset-support.html
index 806ead0..10b8c7e 100644
--- a/content/docs/assets-and-files/legacy-asset-support.html
+++ b/content/docs/assets-and-files/legacy-asset-support.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>&lt;no title&gt; &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>&lt;no title&gt; &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -261,7 +261,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/assets-and-files/retrieving-assets.html b/content/docs/assets-and-files/retrieving-assets.html
index 718464d..1c10936 100644
--- a/content/docs/assets-and-files/retrieving-assets.html
+++ b/content/docs/assets-and-files/retrieving-assets.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Retrieving assets &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Retrieving assets &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Folders" href="folders.html"/>
         <link rel="prev" title="Uploading assets" href="uploading-assets.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -340,7 +340,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/assets-and-files/uploading-assets.html b/content/docs/assets-and-files/uploading-assets.html
index 1d84692..1118ebd 100644
--- a/content/docs/assets-and-files/uploading-assets.html
+++ b/content/docs/assets-and-files/uploading-assets.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Uploading assets &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Uploading assets &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Retrieving assets" href="retrieving-assets.html"/>
         <link rel="prev" title="Geolocating your Entities" href="../geolocation/geolocation.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -400,7 +400,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/counters-and-events/creating-and-incrementing-counters.html b/content/docs/counters-and-events/creating-and-incrementing-counters.html
index cfe9727..2f7d0ae 100644
--- a/content/docs/counters-and-events/creating-and-incrementing-counters.html
+++ b/content/docs/counters-and-events/creating-and-incrementing-counters.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Creating &amp; incrementing counters &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Creating &amp; incrementing counters &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Retrieving counters" href="retrieving-counters.html"/>
         <link rel="prev" title="Counters &amp; events" href="events-and-counters.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -390,7 +390,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/counters-and-events/events-and-counters.html b/content/docs/counters-and-events/events-and-counters.html
index 5f79f10..a1663cc 100644
--- a/content/docs/counters-and-events/events-and-counters.html
+++ b/content/docs/counters-and-events/events-and-counters.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Counters &amp; events &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Counters &amp; events &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Creating &amp; incrementing counters" href="creating-and-incrementing-counters.html"/>
         <link rel="prev" title="Folders" href="../assets-and-files/folders.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -287,7 +287,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/counters-and-events/retrieving-counters.html b/content/docs/counters-and-events/retrieving-counters.html
index 7510b7b..a5d5aab 100644
--- a/content/docs/counters-and-events/retrieving-counters.html
+++ b/content/docs/counters-and-events/retrieving-counters.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Retrieving counters &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Retrieving counters &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Organization &amp; application management" href="../orgs-and-apps/managing.html"/>
         <link rel="prev" title="Creating &amp; incrementing counters" href="creating-and-incrementing-counters.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -442,7 +442,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-queries/advanced-query-usage.html b/content/docs/data-queries/advanced-query-usage.html
index a901d82..c603613 100644
--- a/content/docs/data-queries/advanced-query-usage.html
+++ b/content/docs/data-queries/advanced-query-usage.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Advanced query usage &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Advanced query usage &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Connecting entities" href="../entity-connections/connecting-entities.html"/>
         <link rel="prev" title="Query operators &amp; data types" href="operators-and-types.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -305,7 +305,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-queries/operators-and-types.html b/content/docs/data-queries/operators-and-types.html
index c66f626..e9ca61c 100644
--- a/content/docs/data-queries/operators-and-types.html
+++ b/content/docs/data-queries/operators-and-types.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Query operators &amp; data types &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Query operators &amp; data types &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Advanced query usage" href="advanced-query-usage.html"/>
         <link rel="prev" title="Query parameters &amp; clauses" href="query-parameters.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -464,7 +464,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-queries/query-parameters.html b/content/docs/data-queries/query-parameters.html
index cb812b8..e1e754f 100644
--- a/content/docs/data-queries/query-parameters.html
+++ b/content/docs/data-queries/query-parameters.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Query parameters &amp; clauses &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Query parameters &amp; clauses &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Query operators &amp; data types" href="operators-and-types.html"/>
         <link rel="prev" title="Querying your data" href="querying-your-data.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -496,7 +496,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-queries/querying-your-data.html b/content/docs/data-queries/querying-your-data.html
index 1c68fff..83afa63 100644
--- a/content/docs/data-queries/querying-your-data.html
+++ b/content/docs/data-queries/querying-your-data.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Querying your data &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Querying your data &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Query parameters &amp; clauses" href="query-parameters.html"/>
         <link rel="prev" title="Entities" href="../data-storage/entities.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -437,7 +437,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-storage/collections.html b/content/docs/data-storage/collections.html
index e35c99b..be72bfb 100644
--- a/content/docs/data-storage/collections.html
+++ b/content/docs/data-storage/collections.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Collections &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Collections &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Entities" href="entities.html"/>
         <link rel="prev" title="Data Store Best Practices" href="optimizing-access.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -662,7 +662,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-storage/data-store-dbms.html b/content/docs/data-storage/data-store-dbms.html
index ab7b7a7..7bd80e4 100644
--- a/content/docs/data-storage/data-store-dbms.html
+++ b/content/docs/data-storage/data-store-dbms.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>The Usergrid Data Store &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>The Usergrid Data Store &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Data Store Best Practices" href="optimizing-access.html"/>
         <link rel="prev" title="Using the API" href="../using-usergrid/using-the-api.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -407,7 +407,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-storage/entities.html b/content/docs/data-storage/entities.html
index 9ff0a77..efb1056 100644
--- a/content/docs/data-storage/entities.html
+++ b/content/docs/data-storage/entities.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Entities &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Entities &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Querying your data" href="../data-queries/querying-your-data.html"/>
         <link rel="prev" title="Collections" href="collections.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -1007,7 +1007,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/data-storage/optimizing-access.html b/content/docs/data-storage/optimizing-access.html
index 97955d5..33eadcd 100644
--- a/content/docs/data-storage/optimizing-access.html
+++ b/content/docs/data-storage/optimizing-access.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Data Store Best Practices &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Data Store Best Practices &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Collections" href="collections.html"/>
         <link rel="prev" title="The Usergrid Data Store" href="data-store-dbms.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -541,7 +541,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/entity-connections/connecting-entities.html b/content/docs/entity-connections/connecting-entities.html
index ef308ca..48041a7 100644
--- a/content/docs/entity-connections/connecting-entities.html
+++ b/content/docs/entity-connections/connecting-entities.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Connecting entities &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Connecting entities &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Retrieving connections" href="retrieving-entities.html"/>
         <link rel="prev" title="Advanced query usage" href="../data-queries/advanced-query-usage.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -362,7 +362,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/entity-connections/disconnecting-entities.html b/content/docs/entity-connections/disconnecting-entities.html
index 209c86a..85aabab 100644
--- a/content/docs/entity-connections/disconnecting-entities.html
+++ b/content/docs/entity-connections/disconnecting-entities.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Disconnecting entities &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Disconnecting entities &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Push notifications overview" href="../push-notifications/overview.html"/>
         <link rel="prev" title="Retrieving connections" href="retrieving-entities.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -379,7 +379,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/entity-connections/retrieving-entities.html b/content/docs/entity-connections/retrieving-entities.html
index 00699ca..3af28af 100644
--- a/content/docs/entity-connections/retrieving-entities.html
+++ b/content/docs/entity-connections/retrieving-entities.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Retrieving connections &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Retrieving connections &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Disconnecting entities" href="disconnecting-entities.html"/>
         <link rel="prev" title="Connecting entities" href="connecting-entities.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -403,7 +403,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/genindex.html b/content/docs/genindex.html
index 03ecbcb..b8bfa4f 100644
--- a/content/docs/genindex.html
+++ b/content/docs/genindex.html
@@ -9,7 +9,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Index &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Index &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -31,7 +31,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="index.html"/> 
 
   
   <script src="_static/js/modernizr.min.js"></script>
@@ -58,7 +58,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -266,7 +266,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'./',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/geolocation/geolocation.html b/content/docs/geolocation/geolocation.html
index bb66dc2..8779bc4 100644
--- a/content/docs/geolocation/geolocation.html
+++ b/content/docs/geolocation/geolocation.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Geolocating your Entities &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Geolocating your Entities &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Uploading assets" href="../assets-and-files/uploading-assets.html"/>
         <link rel="prev" title="App Example - Messagee" href="../user-management/messagee-example.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -397,7 +397,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/index.html b/content/docs/index.html
index a77a322..6d2f2b4 100644
--- a/content/docs/index.html
+++ b/content/docs/index.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Apache Usergrid Documentation &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Apache Usergrid Documentation &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="#"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="#"/>
         <link rel="next" title="Getting Started" href="introduction/overview.html"/> 
 
   
@@ -58,7 +58,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -789,7 +789,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'./',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/installation/deployment-guide.html b/content/docs/installation/deployment-guide.html
index 847ee82..49bf2d6 100644
--- a/content/docs/installation/deployment-guide.html
+++ b/content/docs/installation/deployment-guide.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usergrid 2.1.0 Deployment Guide &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usergrid 2.1.0 Deployment Guide &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Presentations &amp; Videos" href="../reference/presos-and-videos.html"/>
         <link rel="prev" title="COMING SOON..." href="../sdks/tbd.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -804,7 +804,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/installation/ug1-deploy-to-tomcat.html b/content/docs/installation/ug1-deploy-to-tomcat.html
index f6358b9..916990f 100644
--- a/content/docs/installation/ug1-deploy-to-tomcat.html
+++ b/content/docs/installation/ug1-deploy-to-tomcat.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usegrid 1: Deploying to Tomcat &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usegrid 1: Deploying to Tomcat &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -465,7 +465,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/installation/ug1-launcher-quick-start.html b/content/docs/installation/ug1-launcher-quick-start.html
index cc25cbb..d9925e2 100644
--- a/content/docs/installation/ug1-launcher-quick-start.html
+++ b/content/docs/installation/ug1-launcher-quick-start.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usegrid 1: Launcher Quick-start &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usegrid 1: Launcher Quick-start &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -349,7 +349,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/installation/ug2-deploy-to-tomcat.html b/content/docs/installation/ug2-deploy-to-tomcat.html
index 6d49281..353abed 100644
--- a/content/docs/installation/ug2-deploy-to-tomcat.html
+++ b/content/docs/installation/ug2-deploy-to-tomcat.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usergrid 2: Deploy to Tomcat &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usergrid 2: Deploy to Tomcat &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -478,7 +478,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/introduction/async-vs-sync.html b/content/docs/introduction/async-vs-sync.html
index 55a6cbb..e9b9877 100644
--- a/content/docs/introduction/async-vs-sync.html
+++ b/content/docs/introduction/async-vs-sync.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Async vs. sync calls &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Async vs. sync calls &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Creating a Usergrid Account" href="../using-usergrid/creating-account.html"/>
         <link rel="prev" title="Usergrid Data model" href="data-model.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -325,7 +325,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/introduction/data-model.html b/content/docs/introduction/data-model.html
index 8a77b20..79a54c8 100644
--- a/content/docs/introduction/data-model.html
+++ b/content/docs/introduction/data-model.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usergrid Data model &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usergrid Data model &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Async vs. sync calls" href="async-vs-sync.html"/>
         <link rel="prev" title="Usergrid Features" href="usergrid-features.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -433,7 +433,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/introduction/overview.html b/content/docs/introduction/overview.html
index 60de706..aeb4c5d 100644
--- a/content/docs/introduction/overview.html
+++ b/content/docs/introduction/overview.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Getting Started &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Getting Started &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Usergrid Features" href="usergrid-features.html"/>
         <link rel="prev" title="Apache Usergrid Documentation" href="../index.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -314,7 +314,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/introduction/usergrid-features.html b/content/docs/introduction/usergrid-features.html
index ec05439..f28297a 100644
--- a/content/docs/introduction/usergrid-features.html
+++ b/content/docs/introduction/usergrid-features.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usergrid Features &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usergrid Features &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Usergrid Data model" href="data-model.html"/>
         <link rel="prev" title="Getting Started" href="overview.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -442,7 +442,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/jersey2skeleton/README.html b/content/docs/jersey2skeleton/README.html
index 283baf9..1fb0989 100644
--- a/content/docs/jersey2skeleton/README.html
+++ b/content/docs/jersey2skeleton/README.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>jersey2skeleton &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>jersey2skeleton &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -271,7 +271,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/objects.inv b/content/docs/objects.inv
index 7f8bb29..c58efdd 100644
--- a/content/docs/objects.inv
+++ b/content/docs/objects.inv
Binary files differ
diff --git a/content/docs/orgs-and-apps/admin-user.html b/content/docs/orgs-and-apps/admin-user.html
index 1a272b8..9baf6c6 100644
--- a/content/docs/orgs-and-apps/admin-user.html
+++ b/content/docs/orgs-and-apps/admin-user.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Admin user &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Admin user &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Methods" href="../rest-endpoints/api-docs.html"/>
         <link rel="prev" title="Application" href="application.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -834,7 +834,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/orgs-and-apps/application.html b/content/docs/orgs-and-apps/application.html
index 51843b6..fdded4b 100644
--- a/content/docs/orgs-and-apps/application.html
+++ b/content/docs/orgs-and-apps/application.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Application &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Application &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Admin user" href="admin-user.html"/>
         <link rel="prev" title="Organization" href="organization.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -480,7 +480,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/orgs-and-apps/managing.html b/content/docs/orgs-and-apps/managing.html
index 6ff7f00..18bb9b0 100644
--- a/content/docs/orgs-and-apps/managing.html
+++ b/content/docs/orgs-and-apps/managing.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Organization &amp; application management &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Organization &amp; application management &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Organization" href="organization.html"/>
         <link rel="prev" title="Retrieving counters" href="../counters-and-events/retrieving-counters.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -324,7 +324,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/orgs-and-apps/organization.html b/content/docs/orgs-and-apps/organization.html
index a1e1ac0..6cb5112 100644
--- a/content/docs/orgs-and-apps/organization.html
+++ b/content/docs/orgs-and-apps/organization.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Organization &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Organization &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Application" href="application.html"/>
         <link rel="prev" title="Organization &amp; application management" href="managing.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -1001,7 +1001,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/adding-push-support.html b/content/docs/push-notifications/adding-push-support.html
index e861915..c1904ab 100644
--- a/content/docs/push-notifications/adding-push-support.html
+++ b/content/docs/push-notifications/adding-push-support.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Adding push notifications support &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Adding push notifications support &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Getting started with push notifications" href="getting-started.html"/>
         <link rel="prev" title="Push notifications overview" href="overview.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -549,7 +549,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/creating-and-managing-notifications.html b/content/docs/push-notifications/creating-and-managing-notifications.html
index d98441a..3ebd08c 100644
--- a/content/docs/push-notifications/creating-and-managing-notifications.html
+++ b/content/docs/push-notifications/creating-and-managing-notifications.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Creating and managing notifications &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Creating and managing notifications &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Troubleshooting" href="troubleshooting.html"/>
         <link rel="prev" title="Managing users and devices" href="managing-users-and-devices.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -711,7 +711,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/creating-notifiers.html b/content/docs/push-notifications/creating-notifiers.html
index a508e3b..e96a35f 100644
--- a/content/docs/push-notifications/creating-notifiers.html
+++ b/content/docs/push-notifications/creating-notifiers.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Creating notifiers &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Creating notifiers &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Managing users and devices" href="managing-users-and-devices.html"/>
         <link rel="prev" title="Registering with a notification service" href="registering.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -393,7 +393,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/getting-started.html b/content/docs/push-notifications/getting-started.html
index 469a7bf..57d6daa 100644
--- a/content/docs/push-notifications/getting-started.html
+++ b/content/docs/push-notifications/getting-started.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Getting started with push notifications &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Getting started with push notifications &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Tutorial: Push notifications sample app" href="tutorial.html"/>
         <link rel="prev" title="Adding push notifications support" href="adding-push-support.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -465,7 +465,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/managing-users-and-devices.html b/content/docs/push-notifications/managing-users-and-devices.html
index 14f451c..c038da5 100644
--- a/content/docs/push-notifications/managing-users-and-devices.html
+++ b/content/docs/push-notifications/managing-users-and-devices.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Managing users and devices &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Managing users and devices &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Creating and managing notifications" href="creating-and-managing-notifications.html"/>
         <link rel="prev" title="Creating notifiers" href="creating-notifiers.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -656,7 +656,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/overview.html b/content/docs/push-notifications/overview.html
index fc86409..af3ac05 100644
--- a/content/docs/push-notifications/overview.html
+++ b/content/docs/push-notifications/overview.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Push notifications overview &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Push notifications overview &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Adding push notifications support" href="adding-push-support.html"/>
         <link rel="prev" title="Disconnecting entities" href="../entity-connections/disconnecting-entities.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -361,7 +361,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/registering.html b/content/docs/push-notifications/registering.html
index 334f7bb..85873a6 100644
--- a/content/docs/push-notifications/registering.html
+++ b/content/docs/push-notifications/registering.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Registering with a notification service &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Registering with a notification service &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Creating notifiers" href="creating-notifiers.html"/>
         <link rel="prev" title="Tutorial: Push notifications sample app" href="tutorial.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -452,7 +452,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/tbd.html b/content/docs/push-notifications/tbd.html
index 90ce35b..89ba353 100644
--- a/content/docs/push-notifications/tbd.html
+++ b/content/docs/push-notifications/tbd.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>COMING IN USERGRID 2 &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>COMING IN USERGRID 2 &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -264,7 +264,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/troubleshooting.html b/content/docs/push-notifications/troubleshooting.html
index 5642019..dc1eac5 100644
--- a/content/docs/push-notifications/troubleshooting.html
+++ b/content/docs/push-notifications/troubleshooting.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Troubleshooting &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Troubleshooting &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Security &amp; token authentication" href="../security-and-auth/app-security.html"/>
         <link rel="prev" title="Creating and managing notifications" href="creating-and-managing-notifications.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -434,7 +434,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/tutorial.html b/content/docs/push-notifications/tutorial.html
index d9364bd..5b5bfc2 100644
--- a/content/docs/push-notifications/tutorial.html
+++ b/content/docs/push-notifications/tutorial.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Tutorial: Push notifications sample app &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Tutorial: Push notifications sample app &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Registering with a notification service" href="registering.html"/>
         <link rel="prev" title="Getting started with push notifications" href="getting-started.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -634,7 +634,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/push-notifications/users-devices.html b/content/docs/push-notifications/users-devices.html
index 1ea3e74..6a28fae 100644
--- a/content/docs/push-notifications/users-devices.html
+++ b/content/docs/push-notifications/users-devices.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Users &amp; Devices &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Users &amp; Devices &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -521,7 +521,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/reference/contribute-code.html b/content/docs/reference/contribute-code.html
index 78bc50f..83f1b4b 100644
--- a/content/docs/reference/contribute-code.html
+++ b/content/docs/reference/contribute-code.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>How to Contribute Code &amp; Docs &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>How to Contribute Code &amp; Docs &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="prev" title="Presentations &amp; Videos" href="presos-and-videos.html"/> 
 
   
@@ -58,7 +58,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -329,7 +329,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/reference/presos-and-videos.html b/content/docs/reference/presos-and-videos.html
index ee67ddd..74c708e 100644
--- a/content/docs/reference/presos-and-videos.html
+++ b/content/docs/reference/presos-and-videos.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Presentations &amp; Videos &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Presentations &amp; Videos &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="How to Contribute Code &amp; Docs" href="contribute-code.html"/>
         <link rel="prev" title="Usergrid 2.1.0 Deployment Guide" href="../installation/deployment-guide.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -319,7 +319,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/rest-endpoints/api-docs.html b/content/docs/rest-endpoints/api-docs.html
index 889f464..0ab74e4 100644
--- a/content/docs/rest-endpoints/api-docs.html
+++ b/content/docs/rest-endpoints/api-docs.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Methods &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Methods &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="COMING SOON..." href="../sdks/tbd.html"/>
         <link rel="prev" title="Admin user" href="../orgs-and-apps/admin-user.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -4186,7 +4186,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/sdks/ios-new.html b/content/docs/sdks/ios-new.html
index 8b3d8d2..c8b5d30 100644
--- a/content/docs/sdks/ios-new.html
+++ b/content/docs/sdks/ios-new.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usergrid iOS SDK &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usergrid iOS SDK &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -1291,7 +1291,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/sdks/sdk-outline.html b/content/docs/sdks/sdk-outline.html
index 32c377c..60802d8 100644
--- a/content/docs/sdks/sdk-outline.html
+++ b/content/docs/sdks/sdk-outline.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Usergrid SDK Documentation outline &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Usergrid SDK Documentation outline &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -484,7 +484,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/sdks/tbd.html b/content/docs/sdks/tbd.html
index aaaa9ad..00ff51c 100644
--- a/content/docs/sdks/tbd.html
+++ b/content/docs/sdks/tbd.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>COMING SOON... &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>COMING SOON... &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Usergrid 2.1.0 Deployment Guide" href="../installation/deployment-guide.html"/>
         <link rel="prev" title="Methods" href="../rest-endpoints/api-docs.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -275,7 +275,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/search.html b/content/docs/search.html
index 113ad25..4491d15 100644
--- a/content/docs/search.html
+++ b/content/docs/search.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Search &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Search &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="index.html"/> 
 
   
   <script src="_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -269,7 +269,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'./',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/app-security.html b/content/docs/security-and-auth/app-security.html
index cde27e6..3bd07fc 100644
--- a/content/docs/security-and-auth/app-security.html
+++ b/content/docs/security-and-auth/app-security.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Security &amp; token authentication &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Security &amp; token authentication &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Using permissions" href="using-permissions.html"/>
         <link rel="prev" title="Troubleshooting" href="../push-notifications/troubleshooting.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -304,7 +304,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/authenticating-api-requests.html b/content/docs/security-and-auth/authenticating-api-requests.html
index e48d17a..30aa265 100644
--- a/content/docs/security-and-auth/authenticating-api-requests.html
+++ b/content/docs/security-and-auth/authenticating-api-requests.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Authenticating API requests &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Authenticating API requests &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Revoking tokens (logout)" href="revoking-tokens-logout.html"/>
         <link rel="prev" title="Changing token expiration (time-to-live)" href="changing-token-time-live-ttl.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -353,7 +353,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/authenticating-users-and-application-clients.html b/content/docs/security-and-auth/authenticating-users-and-application-clients.html
index 1f2a5bb..340d0e3 100644
--- a/content/docs/security-and-auth/authenticating-users-and-application-clients.html
+++ b/content/docs/security-and-auth/authenticating-users-and-application-clients.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Authenticating users &amp; app clients &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Authenticating users &amp; app clients &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Authentication levels" href="user-authentication-types.html"/>
         <link rel="prev" title="Using roles" href="using-roles.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -514,7 +514,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/changing-token-time-live-ttl.html b/content/docs/security-and-auth/changing-token-time-live-ttl.html
index 03cfa81..f9f9cad 100644
--- a/content/docs/security-and-auth/changing-token-time-live-ttl.html
+++ b/content/docs/security-and-auth/changing-token-time-live-ttl.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Changing token expiration (time-to-live) &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Changing token expiration (time-to-live) &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Authenticating API requests" href="authenticating-api-requests.html"/>
         <link rel="prev" title="Authentication levels" href="user-authentication-types.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -373,7 +373,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/facebook-sign.html b/content/docs/security-and-auth/facebook-sign.html
index 44da356..0f4ee84 100644
--- a/content/docs/security-and-auth/facebook-sign.html
+++ b/content/docs/security-and-auth/facebook-sign.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Facebook sign in &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Facebook sign in &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Security best practices" href="securing-your-app.html"/>
         <link rel="prev" title="Revoking tokens (logout)" href="revoking-tokens-logout.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -490,7 +490,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/revoking-tokens-logout.html b/content/docs/security-and-auth/revoking-tokens-logout.html
index 3fcb523..e82be31 100644
--- a/content/docs/security-and-auth/revoking-tokens-logout.html
+++ b/content/docs/security-and-auth/revoking-tokens-logout.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Revoking tokens (logout) &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Revoking tokens (logout) &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Facebook sign in" href="facebook-sign.html"/>
         <link rel="prev" title="Authenticating API requests" href="authenticating-api-requests.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -326,7 +326,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/securing-your-app.html b/content/docs/security-and-auth/securing-your-app.html
index 99aee72..a722510 100644
--- a/content/docs/security-and-auth/securing-your-app.html
+++ b/content/docs/security-and-auth/securing-your-app.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Security best practices &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Security best practices &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="User management &amp; social graph" href="../user-management/user-management.html"/>
         <link rel="prev" title="Facebook sign in" href="facebook-sign.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -382,7 +382,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/user-authentication-types.html b/content/docs/security-and-auth/user-authentication-types.html
index 6b8d457..f94587c 100644
--- a/content/docs/security-and-auth/user-authentication-types.html
+++ b/content/docs/security-and-auth/user-authentication-types.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Authentication levels &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Authentication levels &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Changing token expiration (time-to-live)" href="changing-token-time-live-ttl.html"/>
         <link rel="prev" title="Authenticating users &amp; app clients" href="authenticating-users-and-application-clients.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -388,7 +388,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/using-permissions.html b/content/docs/security-and-auth/using-permissions.html
index 04a82c7..96d70a6 100644
--- a/content/docs/security-and-auth/using-permissions.html
+++ b/content/docs/security-and-auth/using-permissions.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Using permissions &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Using permissions &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Using roles" href="using-roles.html"/>
         <link rel="prev" title="Security &amp; token authentication" href="app-security.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -494,7 +494,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/security-and-auth/using-roles.html b/content/docs/security-and-auth/using-roles.html
index 0fb46e1..b0f452f 100644
--- a/content/docs/security-and-auth/using-roles.html
+++ b/content/docs/security-and-auth/using-roles.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Using roles &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Using roles &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Authenticating users &amp; app clients" href="authenticating-users-and-application-clients.html"/>
         <link rel="prev" title="Using permissions" href="using-permissions.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -721,7 +721,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/activity.html b/content/docs/user-management/activity.html
index dc397ac..ac5788d 100644
--- a/content/docs/user-management/activity.html
+++ b/content/docs/user-management/activity.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Activity &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Activity &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Social Graph Connections" href="user-connections.html"/>
         <link rel="prev" title="Working with group data" href="group.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -850,7 +850,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/group.html b/content/docs/user-management/group.html
index be83831..43255d2 100644
--- a/content/docs/user-management/group.html
+++ b/content/docs/user-management/group.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Working with group data &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Working with group data &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Activity" href="activity.html"/>
         <link rel="prev" title="Working with User Data" href="working-user-data.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -813,7 +813,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/groups.html b/content/docs/user-management/groups.html
index dbde055..efa4adf 100644
--- a/content/docs/user-management/groups.html
+++ b/content/docs/user-management/groups.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Groups &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Groups &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/> 
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -57,7 +57,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -382,7 +382,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/messagee-example.html b/content/docs/user-management/messagee-example.html
index e336348..ffb3b62 100644
--- a/content/docs/user-management/messagee-example.html
+++ b/content/docs/user-management/messagee-example.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>App Example - Messagee &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>App Example - Messagee &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Geolocating your Entities" href="../geolocation/geolocation.html"/>
         <link rel="prev" title="Social Graph Connections" href="user-connections.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -467,7 +467,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/user-connections.html b/content/docs/user-management/user-connections.html
index ec0fdc5..3cbbc2a 100644
--- a/content/docs/user-management/user-connections.html
+++ b/content/docs/user-management/user-connections.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Social Graph Connections &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Social Graph Connections &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="App Example - Messagee" href="messagee-example.html"/>
         <link rel="prev" title="Activity" href="activity.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -342,7 +342,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/user-management.html b/content/docs/user-management/user-management.html
index 1cd9dde..eb0f4b2 100644
--- a/content/docs/user-management/user-management.html
+++ b/content/docs/user-management/user-management.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>User management &amp; social graph &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>User management &amp; social graph &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Working with User Data" href="working-user-data.html"/>
         <link rel="prev" title="Security best practices" href="../security-and-auth/securing-your-app.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -356,7 +356,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/user-management/working-user-data.html b/content/docs/user-management/working-user-data.html
index b4662f0..18f2f0e 100644
--- a/content/docs/user-management/working-user-data.html
+++ b/content/docs/user-management/working-user-data.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Working with User Data &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Working with User Data &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Working with group data" href="group.html"/>
         <link rel="prev" title="User management &amp; social graph" href="user-management.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -689,7 +689,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/using-usergrid/creating-a-new-application.html b/content/docs/using-usergrid/creating-a-new-application.html
index cbcd095..7b1bcdb 100644
--- a/content/docs/using-usergrid/creating-a-new-application.html
+++ b/content/docs/using-usergrid/creating-a-new-application.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Creating a new application &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Creating a new application &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Using a Sandbox Application" href="using-a-sandbox-app.html"/>
         <link rel="prev" title="Creating a Usergrid Account" href="creating-account.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -306,7 +306,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/using-usergrid/creating-account.html b/content/docs/using-usergrid/creating-account.html
index 55f65a6..f853fe7 100644
--- a/content/docs/using-usergrid/creating-account.html
+++ b/content/docs/using-usergrid/creating-account.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Creating a Usergrid Account &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Creating a Usergrid Account &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Creating a new application" href="creating-a-new-application.html"/>
         <link rel="prev" title="Async vs. sync calls" href="../introduction/async-vs-sync.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -317,7 +317,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/using-usergrid/using-a-sandbox-app.html b/content/docs/using-usergrid/using-a-sandbox-app.html
index 1f5b1fa..ef65e42 100644
--- a/content/docs/using-usergrid/using-a-sandbox-app.html
+++ b/content/docs/using-usergrid/using-a-sandbox-app.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Using a Sandbox Application &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Using a Sandbox Application &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="Using the API" href="using-the-api.html"/>
         <link rel="prev" title="Creating a new application" href="creating-a-new-application.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -342,7 +342,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/docs/using-usergrid/using-the-api.html b/content/docs/using-usergrid/using-the-api.html
index c251dee..c46b1fb 100644
--- a/content/docs/using-usergrid/using-the-api.html
+++ b/content/docs/using-usergrid/using-the-api.html
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Using the API &mdash; Apache Usergrid 1.0 documentation</title>
+  <title>Using the API &mdash; Apache Usergrid 2.x documentation</title>
   
 
   
@@ -30,7 +30,7 @@
   
 
   
-    <link rel="top" title="Apache Usergrid 1.0 documentation" href="../index.html"/>
+    <link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
         <link rel="next" title="The Usergrid Data Store" href="../data-storage/data-store-dbms.html"/>
         <link rel="prev" title="Using a Sandbox Application" href="using-a-sandbox-app.html"/> 
 
@@ -59,7 +59,7 @@
           
           
             <div class="version">
-              1.0
+              2.x
             </div>
           
         
@@ -476,7 +476,7 @@
     <script type="text/javascript">
         var DOCUMENTATION_OPTIONS = {
             URL_ROOT:'../',
-            VERSION:'1.0',
+            VERSION:'2.x',
             COLLAPSE_INDEX:false,
             FILE_SUFFIX:'.html',
             HAS_SOURCE:  true
diff --git a/content/index.html b/content/index.html
index 9416909..0394438 100644
--- a/content/index.html
+++ b/content/index.html
@@ -232,8 +232,7 @@
         </div> 
         <div class="row">
             <div id="copyright">
-                <img src="/img/egg-logo.png" /><br/><br/>
-                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                <p>Copyright © The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                 Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                 <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> .</p>
             </div>
diff --git a/content/releases/index.html b/content/releases/index.html
index 086cb60..c02187c 100644
--- a/content/releases/index.html
+++ b/content/releases/index.html
@@ -200,8 +200,7 @@
         </div> 
         <div class="row">
             <div id="copyright">
-                <img src="/img/egg-logo.png" /><br/><br/>
-                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                <p>Copyright © The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                 Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                 <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> .</p>
             </div>
diff --git a/docs/conf.py b/docs/conf.py
index db1c4fe..96a071d 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -70,9 +70,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '1.0'
+version = '2.x'
 # The full version, including alpha/beta/rc tags.
-release = '1.0'
+release = '2.x'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/sdks/java/README.md b/sdks/java/README.md
index 7943c41..95e4d04 100644
--- a/sdks/java/README.md
+++ b/sdks/java/README.md
@@ -1,20 +1,580 @@
+# Usergrid Java SDK
 
-#Usergrid Java Client
+Usergrid SDK written for Java 
 
-#License
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
+## Initialization
 
-  http://www.apache.org/licenses/LICENSE-2.0
+There are two different ways of initializing the Usergrid Java SDK: 
 
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
+1. The singleton pattern is both convenient and enables the developer to use a globally available and always-initialized instance of Usergrid. 
+
+```java
+Usergrid.initSharedInstance("orgId", "appId");
+```
+
+2. The Instance pattern enables the developer to manage instances of the Usergrid client independently and in an isolated fashion. The primary use-case for this is when an application connects to multiple Usergrid targets.
+
+```java
+UsergridClient client = new UsergridClient("orgId","appId");
+```
+
+_Note: Examples in this readme assume you are using the `Usergrid` shared instance. If you've implemented the instance pattern instead, simply replace `Usergrid` with your client instance variable._
+
+## RESTful operations
+
+When making any RESTful call, a `type` parameter (or `path`) is always required. Whether you specify this as an argument or in an object as a parameter is up to you.
+
+### GET
+
+- To get entities in a collection:
+
+```java
+UsergridResponse response = Usergrid.GET("collection");
+List<UsergridEntity> entities = response.getEntities();
+```
+
+- To get a specific entity in a collection by uuid or name:
+
+```java
+UsergridResponse response = Usergrid.GET("collection","<uuid-or-name>");
+UsergridEntity entities = response.entity();
+```
+
+- To get specific entities in a collection by passing a `UsergridQuery` object:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").gt("weight", 2.4)
+                                 	.contains("color", "bl*")
+                                 .not()
+                                 .eq("color", "blue")
+                                 .or()
+                                 .eq("color", "orange");
+	
+// this will build out the following query:
+// select * where weight > 2.4 and color contains 'bl*' and not color = 'blue' or color = 'orange'
+	
+UsergridResponse response = Usergrid.GET(query);
+List<UsergridEntity> entities = response.getEntities();
+```
+
+### POST and PUT
+
+POST and PUT requests both require a JSON body payload. You can pass either a Java object or a `UsergridEntity` instance. While the former works in principle, best practise is to use a `UsergridEntity` wherever practical. When an entity has a uuid or name property and already exists on the server, use a PUT request to update it. If it does not, use POST to create it.
+
+- To create a new entity in a collection (**POST**):
+
+```java
+HashMap<String,String> propertyMap = new HashMap<>();
+propertyMap.put("cuisine","pizza");
+UsergridEntity entity = new UsergridEntity("restaurant","Dino's Deep Dish", propertyMap);	
+Usergrid.POST(entity); // entity should now have a uuid property and be created
+	
+// you can also POST an array of entities:
+	
+HashMap<String,String> propertyMap = new HashMap<>();
+propertyMap.put("cuisine","pizza");
+
+ArrayList<UsergridEntity> entities = new ArrayList<>();
+entities.add(new UsergridEntity("restaurant","Dino's Deep Dish", propertyMap));
+entities.add(new UsergridEntity("restaurant","Pizza da Napoli", propertyMap));
+UsergridResponse response = Usergrid.POST(entities);
+List<UsergridEntity> responseEntities = response.getEntities(); // responseEntities should now contain now valid posted entities.
+```
+
+- To update an entity in a collection (**PUT**):
+
+```java
+HashMap<String,String> propertyMap = new HashMap<>();
+propertyMap.put("cuisine","pizza");
+UsergridEntity entity = new UsergridEntity("restaurant","Dino's Deep Dish", propertyMap);	
+UsergridResponse response = Usergrid.POST(entity);
+if( response.ok() ) {
+	entity.putProperty("owner","Mia Carrara");
+	Usergrid.PUT(entity); // entity now has the property 'owner'
+}
+	
+// or update a set of entities by passing a UsergridQuery object
+
+HashMap<String,String> propertiesToUpdate = new HashMap<>();
+propertiesToUpdate.put("cuisine","pizza");
+UsergridQuery query = new UsergridQuery("restaurants").eq("cuisine","italian");
+
+UsergridResponse response = Usergrid.PUT(query, propertiesToUpdate);
+	
+    /* the first 10 entities matching this query criteria will be updated:
+    e.g.:
+        [
+            {
+                "type": "restaurant",
+                "restaurant": "Il Tarazzo",
+                "cuisine": "italian",
+                "keywords": ["pasta"]
+            },
+            {
+                "type": "restaurant",
+                "restaurant": "Cono Sur Pizza & Pasta",
+                "cuisine": "italian",
+                "keywords": ["pasta"]
+            }
+        ]
+    */
+```
+
+### DELETE
+
+DELETE requests require either a specific entity or a `UsergridQuery` object to be passed as an argument.
+
+- To delete a specific entity in a collection by uuid or name:
+
+```java
+UsergridResponse response = Usergrid.DELETE("collection", "<uuid-or-name>"); // if successful, entity will now be deleted
+```
+
+- To specific entities in a collection to delete by passing a `UsergridQuery` object:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").eq("color","black").or().eq("color","white");
+	
+// this will build out the following query:
+// select * where color = 'black' or color = 'white'
+	
+UsergridResponse response = Usergrid.DELETE(query); // the first 10 entities matching this query criteria will be deleted
+```
+
+## Entity operations and convenience methods
+
+`UsergridEntity` has a number of helper/convenience methods to make working with entities more convenient.
+
+### reload()
+
+Reloads the entity from the server:
+
+```java
+entity.reload(); // entity is now reloaded from the server
+```
+
+### save()
+
+Saves (or creates) the entity on the server:
+
+
+```java
+entity.putProperty("aNewProperty","A new value");
+entity.save(); // entity is now updated on the server
+```
+
+### remove()
+
+Deletes the entity from the server:
+
+```java
+entity.remove(); // entity is now deleted on the server and the local instance should be destroyed
+```
+
+## Authentication, current user, and auth-fallback
+
+### appAuth and authenticateApp()
+
+`Usergrid` can use the app client ID and secret that were passed upon initialization and automatically retrieve an app-level token for these credentials.
+
+```java
+Usergrid.setAppAuth(new UsergridAppAuth("<client-id>", "<client-secret>"));
+Usergrid.authenticateApp(); // Usergrid.appAuth is authenticated automatically when this call is successful
+```
+
+### currentUser, userAuth,  and authenticateUser()
+
+`Usergrid` has a special `currentUser` property. 
+
+By default, when calling `authenticateUser()`, `.currentUser` will be set to this user if the authentication flow is successful.
+
+```java
+UsergridUserAuth userAuth = new UsergridUserAuth("<username>","<password>");
+Usergrid.authenticateUser(userAuth); // Usergrid.currentUser is set to the authenticated user and the token is stored within that context
+```
+    
+If you want to utilize authenticateUser without setting as the current user, simply pass a `false` boolean value as the second parameter:
+
+```java
+UsergridUserAuth userAuth = new UsergridUserAuth("<username>","<password>");
+Usergrid.authenticateUser(userAuth,false); // user is authenticated but Usergrid.currentUser is not set.
+```
+
+### authMode
+
+Auth-mode defines what the client should pass in for the authorization header. 
+
+By default, `Usergrid.authMode` is set to `.User`, when a `Usergrid.currentUser` is present and authenticated, an API call will be performed using the token for the user. 
+
+If `Usergrid.authMode` is set to `.None`, all API calls will be performed unauthenticated. 
+
+If instead `Usergrid.authMode` is set to `.App`, the API call will instead be performed using client credentials, _if_ they're available (i.e. `authenticateApp()` was performed at some point). 
+
+### usingAuth()
+
+At times it is desireable to have complete, granular control over the authentication context of an API call. 
+
+To facilitate this, the passthrough function `.usingAuth()` allows you to pre-define the auth context of the next API call.
+
+```java
+// assume Usergrid.authMode = UsergridAuthMode.NONE.
+
+Map<String, String> permissionsMap = new HashMap<>();
+permissionsMap.put("permission","get,post,put,delete:/**");
+UsergridResponse response = Usergrid.usingAuth(Usergrid.getAppAuth()).POST("roles/guest/permissions",permissionsMap);
+
+// here we've temporarily used the client credentials to modify permissions
+// subsequent calls will not use this auth context
+```
+
+## User operations and convenience methods
+
+`UsergridUser` has a number of helper/convenience methods to make working with user entities more convenient. If you are _not_ utilizing the `Usergrid` shared instance, you must pass an instance of `UsergridClient` as the first argument to any of these helper methods.
+    
+### create()
+
+Creating a new user:
+
+```java
+UsergridUser user = new UsergridUser("username","password");
+user.create(); // user has now been created and should have a valid uuid
+```
+
+### login()
+
+A simpler means of retrieving a user-level token:
+
+```java
+user.login("username","password"); // user is now logged in
+```
+
+### logout()
+
+Logs out the selected user. You can also use this convenience method on `Usergrid.currentUser`.
+
+```java
+user.logout(); // user is now logged out
+```
+
+### resetPassword()
+
+Resets the password for the selected user.
+
+```java
+// if it was done correctly, the new password will be changed
+user.resetPassword("oldPassword", "newPassword");
+```
+
+### UsergridUser.CheckAvailable()
+
+This is a class (static) method that allows you to check whether a username or email address is available or not.
+
+```java
+boolean available = UsergridUser.checkAvailable("email", null); // 'available' == whether an email already exists for a user
+
+available = UsergridUser.checkAvailable(null, "username"); // 'available' == whether an username already exists for a user
+
+available = UsergridUser.checkAvailable("email", "username"); // 'available' == whether an email or username already exist for a user
+```
+
+## Querying and filtering data
+
+### UsergridQuery initialization
+
+The `UsergridQuery` class allows you to build out complex query filters using the Usergrid [query syntax](http://docs.apigee.com/app-services/content/querying-your-data).
+
+The first parameter of the `UsergridQuery` builder pattern should be the collection (or type) you intend to query. You can either pass this as an argument, or as the first builder object:
+
+```java
+UsergridQuery query = new UsergridQuery("cats");
+// or
+UsergridQuery query = new UsergridQuery().collection("cats");
+```
+
+You then can layer on additional queries:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").gt("weight",2.4).contains("color","bl*")
+                                 .not()
+                                 .eq("color","white")
+                                 .or()
+                                 .eq("color","orange");
+```
+
+You can also adjust the number of results returned:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").eq("color","black").limit(100);
+                                 
+// returns a maximum of 100 entities
+```
+
+And sort the results:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").eq("color","black").limit(100).asc("name")
+                                 
+// sorts by 'name', ascending
+```
+
+And you can do geo-location queries:
+
+```java
+UsergridQuery query = new UsergridQuery("devices").locationWithin(<distance>, <lat>, <long>);
+```
+
+### Using a query in a request
+
+Queries can be passed as parameters to GET, PUT, and DELETE requests:
+
+```java
+// Gets entities matching the query.
+Usergrid.GET(query);
+
+// Updates the entities matching the query with the new property.
+Usergrid.PUT(query, Collections.singletonMap("aNewProperty","A new value"));
+
+// Deletes entities of a given type matching the query.
+Usergrid.DELETE(query);
+```
+### List of query builder objects
+
+`type("string")`
+
+> The collection name to query
+
+`collection("string")`
+
+> An alias for `type`
+
+`eq("key","value")` or 
+`equals("key","value")` or 
+`filter("key","value")` 
+
+> Equal to (e.g. `where color = 'black'`)
+
+`contains("key","value")` or
+`containsString("key","value")` or
+`containsWord("key","value")`
+
+> Contains a string (e.g.` where color contains 'bl*'`)
+
+`gt("key","value")` or
+`greaterThan("key","value")`
+
+> Greater than (e.g. `where weight > 2.4`)
+
+`gte("key","value")` or 
+`greaterThanOrEqual("key","value")`
+
+> Greater than or equal to (e.g. `where weight >= 2.4`)
+
+`lt("key","value")` or `lessThan("key","value")`
+
+> Less than (e.g. `where weight < 2.4`)
+
+`lte("key","value")` or `lessThanOrEqual("key","value")`
+
+> Less than or equal to (e.g. `where weight <= 2.4`)
+
+`not()`
+
+> Negates the next block in the builder pattern, e.g.:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").not().eq("color","black");
+// select * from cats where not color = 'black'
+```
+
+`and()`
+
+> Joins two queries by requiring both of them. `and` is also implied when joining two queries _without_ an operator. E.g.:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").eq("color","black").eq("fur","longHair");
+// is identical to:
+UsergridQuery query = new UsergridQuery("cats").eq("color","black").and().eq("fur","longHair");
+```
+
+`or()`
+
+> Joins two queries by requiring only one of them. `or` is never implied. e.g.:
+
+```java
+UsergridQuery query = new UsergridQuery("cats").eq("color","black").or().eq("color", "white");
+```
+    
+> When using `or()` and `and()` operators, `and()` joins will take precedence over `or()` joins. You can read more about query operators and precedence [here](http://docs.apigee.com/api-baas/content/supported-query-operators-data-types).
+
+`locationWithin(distanceInMeters, latitude, longitude)`
+
+> Returns entities which have a location within the specified radius. Arguments can be `float` or `int`.
+
+`asc("key")` or `ascending("key")`
+
+> Sorts the results by the specified property, ascending
+
+`desc("key")` or `descending("key")`
+
+> Sorts the results by the specified property, descending
+
+`sort("key",UsergridQuerySortOrder.ASC)`
+
+> Sorts the results by the specified property, in the specified `UsergridQuerySortOrder` (`.ASC` or `.DESC`).
+ 
+`limit(int)`
+
+> The maximum number of entities to return
+
+`cursor("string")`
+
+> A pagination cursor string
+
+`fromString("query string")`
+
+> A special builder property that allows you to input a pre-defined query string. All builder properties will be ignored when this property is defined. For example:
+    
+```java
+UsergridQuery query = new UsergridQuery().fromString("select * where color = 'black' order by name asc");
+```
+
+## UsergridResponse object
+
+`UsergridResponse` is the core class that handles both successful and unsuccessful HTTP responses from Usergrid. 
+
+If a request is successful, any entities returned in the response will be automatically parsed into `UsergridEntity` objects and pushed to the `entities` property.
+
+If a request fails, the `error` property will contain information about the problem encountered.
+
+### ok
+
+You can check `UsergridResponse.ok`, a `Bool` value, to see if the response was successful. Any status code `< 400` returns true.
+
+```java
+UsergridResponse response = Usergrid.GET("collection");
+if( response.ok() ) {
+    // woo!
+}
+```
+    
+### entity, entities, user, users, first, last
+
+Depending on the call you make, any entities returned in the response will be automatically parsed into `UsergridEntity` objects and pushed to the `entities` property. If you're querying the `users` collection, these will also be `UsergridUser` objects, a subclass of `UsergridEntity`.
+
+- `.first()` returns the first entity in an array of entities; `.entity()` is an alias to `.first()`. If there are no entities, both of these will be undefined.
+
+- `.last()` returns the last entity in an array of entities; if there is only one entity in the array, this will be the same as `.first()` _and_ `.entity()`, and will be undefined if there are no entities in the response.
+
+- `.getEntities()` will either be an array of entities in the response, or an empty array.
+
+- `.user()` is a special alias for `.entity()` for when querying the `users()` collection. Instead of being a `UsergridEntity`, it will be its subclass, `UsergridUser`.
+
+- `.users()` is the same as `.user()`, though behaves as `.getEntities()` does by returning either an array of UsergridUser objects or an empty array.
+
+Examples:
+
+```java
+UsergridResponse response = Usergrid.GET("collection");
+    // you can access:
+    //     response.getEntities() (the returned entities)
+    //     response.first() (the first entity)
+    //     response.entity() (same as response.first)
+    //     response.last() (the last entity returned)
+
+UsergridResponse response = Usergrid.GET("collection","<uuid-or-name>");
+    // you can access:
+    //     response.entity() (the returned entity) 
+    //     response.getEntities() (containing only the returned entity)
+    //     response.first() (same as response.entity)
+    //     response.last() (same as response.entity)
+
+UsergridResponse response = Usergrid.GET("users");
+    // you can access:
+    //     response.users() (the returned users)
+    //     response.getEntities() (same as response.users)
+    //     response.user() (the first user)    
+    //     response.entity() (same as response.user)   
+    //     response.first() (same as response.user)  
+    //     response.last() (the last user)
+
+UsergridResponse response = Usergrid.GET("users","<uuid-or-name>");
+    // you can access;
+    //     response.users() (containing only the one user)
+    //     response.getEntities() (same as response.users)
+    //     response.user() (the returned user)    
+    //     response.entity() (same as response.user)   
+    //     response.first() (same as response.user)  
+    //     response.last() (same as response.user)  
+```
+
+## Connections
+
+Connections can be managed using `Usergrid.connect()`, `Usergrid.disconnect()`, and `Usergrid.getConnections()`, or entity convenience methods of the same name. 
+
+When retrieving connections via `Usergrid.getConnections()`, you can pass in a optional `UsergridQuery` object in order to filter the connectioned entities returned.
+
+### Connect
+
+Create a connection between two entities:
+
+```java
+Usergrid.connect(entity1, "relationship", entity2); // entity1 now has an outbound connection to entity2
+```
+
+### Retrieve Connections
+
+Retrieve outbound connections:
+
+```java
+Usergrid.getConnections(UsergridDirection.OUT, entity1, "relationship");
+    // entities is an array of entities that entity1 is connected to via 'relationship'
+    // in this case, we'll see entity2 in the array
+```
+
+Retrieve inbound connections:
+
+```java
+Usergrid.getConnections(UsergridDirection.IN, entity2, "relationship");
+    // entities is an array of entities that connect to entity2 via 'relationship'
+    // in this case, we'll see entity1 in the array
+```
+
+### Disconnect
+
+Delete a connection between two entities:
+
+```java
+Usergrid.disconnect(entity1, "relationship", entity2);
+    // entity1's outbound connection to entity2 has been destroyed
+```
+
+## Custom UsergridEntity Subclasses
+
+Creating custom subclasses of the base `UsergridEntity` class (just like `UsergridUser` and `UsergridDevice`) is possible.
+
+- To do so, subclass `UsergridEntity` and implement the required methods:
+
+```java
+public class ActivityEntity extends UsergridEntity {
+	public static final String ACTIVITY_ENTITY_TYPE = "activity";
+	
+   public ActivityEntity(){
+       super(ACTIVITY_ENTITY_TYPE);
+   }
+}
+```
+- You will also need to register the custom subclass:
+
+```java
+Usergrid.initSharedInstance("orgId","appId");
+UsergridEntity.mapCustomSubclassToType("activity", ActivityEntity.class);
+```
+
+By registering your custom subclass, the `UsergridEntity` and `UsergridResponse` classes are able to generate instances of these classes based on the an entities `type`.
+
+In the above example, entities which have a `type` value of `activity` can now be cast as `ActivityEntity` objects. e.g.:
+
+```java
+UsergridResponse response = Usergrid.GET("activity");
+ActivityEntity activityEntity = (ActivityEntity)response.entity();
+```
diff --git a/sdks/java/pom.xml b/sdks/java/pom.xml
index 34eda24..a9b95bb 100644
--- a/sdks/java/pom.xml
+++ b/sdks/java/pom.xml
@@ -1,21 +1,23 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <bundle.symbolicName>org.apache.usergrid</bundle.symbolicName>
         <bundle.namespace>org.apache.usergrid</bundle.namespace>
-        <org.springframework.version>3.1.2.RELEASE</org.springframework.version>
-        <jackson-version>2.3.1</jackson-version>
+        <jackson-version>2.7.3</jackson-version>
+        <junit-version>4.11</junit-version>
+        <okhttp-version>3.2.0</okhttp-version>
+        <intellij-annotations-version>9.0.4</intellij-annotations-version>
     </properties>
 
     <modelVersion>4.0.0</modelVersion>
-
     <groupId>org.apache.usergrid</groupId>
     <artifactId>usergrid-java-client</artifactId>
-    <version>0.0.10-SNAPSHOT</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>jar</packaging>
-    <description>A Java client for usergrid</description>
+    <description>A Java client for Usergrid</description>
     <url>http://usergrid.apache.org</url>
+
     <licenses>
         <license>
             <name>The Apache Software License, Version 2.0</name>
@@ -37,6 +39,18 @@
             <id>sganyo</id>
             <name>Scott Ganyo</name>
         </developer>
+        <developer>
+            <id>jwest</id>
+            <name>Jeffrey West</name>
+        </developer>
+        <developer>
+            <id>adastagiri</id>
+            <name>Ayesha Dastagiri</name>
+        </developer>
+        <developer>
+            <id>rwalsh</id>
+            <name>Robert Walsh</name>
+        </developer>
     </developers>
 
     <build>
@@ -54,60 +68,53 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.1</version>
+                <version>3.3</version>
                 <configuration>
                     <source>1.7</source>
                     <target>1.7</target>
-                    <optimize>true</optimize>
-                    <showDeprecation>true</showDeprecation>
-                    <debug>true</debug>
-                    <encoding>UTF-8</encoding>
-                    <showWarnings>true</showWarnings>
                 </configuration>
             </plugin>
-
         </plugins>
     </build>
 
     <dependencies>
-        <!-- <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> 
-        <version>2.2.1</version> <scope>provided</scope> </dependency> -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>${junit-version}</version>
+            <scope>test</scope>
+        </dependency>
+
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-core</artifactId>
             <version>${jackson-version}</version>
         </dependency>
+
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
             <version>${jackson-version}</version>
         </dependency>
+
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <version>${jackson-version}</version>
         </dependency>
+
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-web</artifactId>
-            <version>${org.springframework.version}</version>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+            <version>${okhttp-version}</version>
         </dependency>
+
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.6.4</version>
+            <groupId>com.intellij</groupId>
+            <artifactId>annotations</artifactId>
+            <version>${intellij-annotations-version}</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-            <id>springsource-milestone</id>
-            <name>Spring Framework Milestone Repository</name>
-            <url>http://maven.springframework.org/milestone</url>
-        </repository>
-    </repositories>
     <name>Apache Usergrid Java SDK</name>
     <organization>
         <name>The Apache Software Foundation</name>
@@ -117,4 +124,4 @@
         <system>JIRA</system>
         <url>https://issues.apache.org/jira/browse/USERGRID</url>
     </issueManagement>
-</project>
+</project>
\ No newline at end of file
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/Client.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/Client.java
deleted file mode 100644
index f72bb94..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/Client.java
+++ /dev/null
@@ -1,1292 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client;
-
-import static org.springframework.util.StringUtils.arrayToDelimitedString;
-import static org.springframework.util.StringUtils.tokenizeToStringArray;
-import static org.apache.usergrid.java.client.utils.JsonUtils.parse;
-import static org.apache.usergrid.java.client.utils.ObjectUtils.isEmpty;
-import static org.apache.usergrid.java.client.utils.UrlUtils.addQueryParams;
-import static org.apache.usergrid.java.client.utils.UrlUtils.encodeParams;
-import static org.apache.usergrid.java.client.utils.UrlUtils.path;
-
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.client.HttpClientErrorException;
-import org.springframework.web.client.RestTemplate;
-import org.apache.usergrid.java.client.entities.Activity;
-import org.apache.usergrid.java.client.entities.Device;
-import org.apache.usergrid.java.client.entities.Entity;
-import org.apache.usergrid.java.client.entities.Group;
-import org.apache.usergrid.java.client.entities.User;
-import org.apache.usergrid.java.client.response.ApiResponse;
-
-/**
- * The Client class for accessing the Usergrid API. Start by instantiating this
- * class though the appropriate constructor.
- *
- */
-public class Client {
-
-    private static final Logger log = LoggerFactory.getLogger(Client.class);
-
-    public static boolean FORCE_PUBLIC_API = false;
-
-    // Public API
-    public static String PUBLIC_API_URL = "http://api.usergrid.com";
-
-    // Local API of standalone server
-    public static String LOCAL_STANDALONE_API_URL = "http://localhost:8080";
-
-    // Local API of Tomcat server in Eclipse
-    public static String LOCAL_TOMCAT_API_URL = "http://localhost:8080/ROOT";
-
-    // Local API
-    public static String LOCAL_API_URL = LOCAL_STANDALONE_API_URL;
-
-    private String apiUrl = PUBLIC_API_URL;
-
-    private String organizationId;
-    private String applicationId;
-    private String clientId;
-    private String clientSecret;
-
-    private User loggedInUser = null;
-
-    private String accessToken = null;
-
-    private String currentOrganization = null;
-
-    static RestTemplate restTemplate = new RestTemplate();
-
-    /**
-     * Default constructor for instantiating a client.
-     */
-    public Client() {
-        init();
-    }
-
-    /**
-     * Instantiate client for a specific app
-     *
-     * @param applicationId
-     *            the application id or name
-     */
-    public Client(String organizationId, String applicationId) {
-        init();
-        this.organizationId = organizationId;
-        this.applicationId = applicationId;
-    }
-
-    public void init() {
-
-    }
-
-    /**
-     * @return the Usergrid API url (default: http://api.usergrid.com)
-     */
-    public String getApiUrl() {
-        return apiUrl;
-    }
-
-    /**
-     * @param apiUrl
-     *            the Usergrid API url (default: http://api.usergrid.com)
-     */
-    public void setApiUrl(String apiUrl) {
-        this.apiUrl = apiUrl;
-    }
-
-    /**
-     * @param apiUrl
-     *            the Usergrid API url (default: http://api.usergrid.com)
-     * @return Client object for method call chaining
-     */
-    public Client withApiUrl(String apiUrl) {
-        this.apiUrl = apiUrl;
-        return this;
-    }
-
-
-    /**
-     * the organizationId to set
-     * @param organizationId
-     * @return
-     */
-    public Client withOrganizationId(String organizationId){
-        this.organizationId = organizationId;
-        return this;
-    }
-
-
-
-    /**
-     * @return the organizationId
-     */
-    public String getOrganizationId() {
-        return organizationId;
-    }
-
-    /**
-     * @param organizationId the organizationId to set
-     */
-    public void setOrganizationId(String organizationId) {
-        this.organizationId = organizationId;
-    }
-
-    /**
-     * @return the application id or name
-     */
-    public String getApplicationId() {
-        return applicationId;
-    }
-
-    /**
-     * @param applicationId
-     *            the application id or name
-     */
-    public void setApplicationId(String applicationId) {
-        this.applicationId = applicationId;
-    }
-
-
-    /**
-     * @param applicationId
-     *            the application id or name
-     * @return Client object for method call chaining
-     */
-    public Client withApplicationId(String applicationId) {
-        this.applicationId = applicationId;
-        return this;
-    }
-
-    /**
-     * @return the client key id for making calls as the application-owner. Not
-     *         safe for most mobile use.
-     */
-    public String getClientId() {
-        return clientId;
-    }
-
-    /**
-     * @param clientId
-     *            the client key id for making calls as the application-owner.
-     *            Not safe for most mobile use.
-     */
-    public void setClientId(String clientId) {
-        this.clientId = clientId;
-    }
-
-    /**
-     * @param clientId
-     *            the client key id for making calls as the application-owner.
-     *            Not safe for most mobile use.
-     * @return Client object for method call chaining
-     */
-    public Client withClientId(String clientId) {
-        this.clientId = clientId;
-        return this;
-    }
-
-    /**
-     * @return the client key id for making calls as the application-owner. Not
-     *         safe for most mobile use.
-     */
-    public String getClientSecret() {
-        return clientSecret;
-    }
-
-    /**
-     * @param clientSecret
-     *            the client key id for making calls as the application-owner.
-     *            Not safe for most mobile use.
-     */
-    public void setClientSecret(String clientSecret) {
-        this.clientSecret = clientSecret;
-    }
-
-    /**
-     * @param clientSecret
-     *            the client key id for making calls as the application-owner.
-     *            Not safe for most mobile use.
-     * @return Client object for method call chaining
-     */
-    public Client withClientSecret(String clientSecret) {
-        this.clientSecret = clientSecret;
-        return this;
-    }
-
-    /**
-     * @return the logged-in user after a successful authorizeAppUser request
-     */
-    public User getLoggedInUser() {
-        return loggedInUser;
-    }
-
-    /**
-     * @param loggedInUser
-     *            the logged-in user, usually not set by host application
-     */
-    public void setLoggedInUser(User loggedInUser) {
-        this.loggedInUser = loggedInUser;
-    }
-
-    /**
-     * @return the OAuth2 access token after a successful authorize request
-     */
-    public String getAccessToken() {
-        return accessToken;
-    }
-
-    /**
-     * @param accessToken
-     *            an OAuth2 access token. Usually not set by host application
-     */
-    public void setAccessToken(String accessToken) {
-        this.accessToken = accessToken;
-    }
-
-    /**
-     * @return the currentOrganization
-     */
-    public String getCurrentOrganization() {
-        return currentOrganization;
-    }
-
-    /**
-     * @param currentOrganization
-     */
-    public void setCurrentOrganization(String currentOrganization) {
-        this.currentOrganization = currentOrganization;
-    }
-
-    /**
-     * Low-level HTTP request method. Synchronous, blocks till response or
-     * timeout.
-     *
-     * @param method
-     *            HttpMethod method
-     * @param cls
-     *            class for the return type
-     * @param params
-     *            parameters to encode as querystring or body parameters
-     * @param data
-     *            JSON data to put in body
-     * @param segments
-     *            REST url path segments (i.e. /segment1/segment2/segment3)
-     * @return results marshalled into class specified in cls parameter
-     */
-    public <T> T httpRequest(HttpMethod method, Class<T> cls,
-            Map<String, Object> params, Object data, String... segments) {
-        HttpHeaders requestHeaders = new HttpHeaders();
-        requestHeaders.setAccept(Collections
-                .singletonList(MediaType.APPLICATION_JSON));
-        if (accessToken != null) {
-            String auth = "Bearer " + accessToken;
-            requestHeaders.set("Authorization", auth);
-            log.info("Authorization: " + auth);
-        }
-        String url = path(apiUrl, segments);
-
-        MediaType contentType = MediaType.APPLICATION_JSON;
-        if (method.equals(HttpMethod.POST) && isEmpty(data) && !isEmpty(params)) {
-            data = encodeParams(params);
-            contentType = MediaType.APPLICATION_FORM_URLENCODED;
-        } else {
-            url = addQueryParams(url, params);
-        }
-        requestHeaders.setContentType(contentType);
-        HttpEntity<?> requestEntity = null;
-
-        if (method.equals(HttpMethod.POST) || method.equals(HttpMethod.PUT)) {
-            if (isEmpty(data)) {
-                data = JsonNodeFactory.instance.objectNode();
-            }
-            requestEntity = new HttpEntity<Object>(data, requestHeaders);
-        } else {
-            requestEntity = new HttpEntity<Object>(requestHeaders);
-        }
-        log.info("Client.httpRequest(): url: " + url);
-        ResponseEntity<T> responseEntity = restTemplate.exchange(url, method,
-                requestEntity, cls);
-        log.info("Client.httpRequest(): reponse body: "
-                + responseEntity.getBody().toString());
-        return responseEntity.getBody();
-    }
-
-    /**
-     * High-level Usergrid API request.
-     *
-     * @param method
-     * @param params
-     * @param data
-     * @param segments
-     * @return
-     */
-    public ApiResponse apiRequest(HttpMethod method,
-            Map<String, Object> params, Object data, String... segments) {
-        ApiResponse response = null;
-        try {
-            response = httpRequest(method, ApiResponse.class, params, data,
-                    segments);
-            log.info("Client.apiRequest(): Response: " + response);
-        } catch (HttpClientErrorException e) {
-            log.error("Client.apiRequest(): HTTP error: "
-                    + e.getLocalizedMessage());
-            response = parse(e.getResponseBodyAsString(), ApiResponse.class);
-            if ((response != null) && !isEmpty(response.getError())) {
-                log.error("Client.apiRequest(): Response error: "
-                        + response.getError());
-                if (!isEmpty(response.getException())) {
-                    log.error("Client.apiRequest(): Response exception: "
-                            + response.getException());
-                }
-            }
-        }
-        return response;
-    }
-
-    protected void assertValidApplicationId() {
-        if (isEmpty(applicationId)) {
-            throw new IllegalArgumentException("No application id specified");
-        }
-    }
-
-    /**
-     * Log the user in and get a valid access token.
-     *
-     * @param email
-     * @param password
-     * @return non-null ApiResponse if request succeeds, check getError() for
-     *         "invalid_grant" to see if access is denied.
-     */
-    public ApiResponse authorizeAppUser(String email, String password) {
-        validateNonEmptyParam(email, "email");
-        validateNonEmptyParam(password,"password");
-        assertValidApplicationId();
-        loggedInUser = null;
-        accessToken = null;
-        currentOrganization = null;
-        Map<String, Object> formData = new HashMap<String, Object>();
-        formData.put("grant_type", "password");
-        formData.put("username", email);
-        formData.put("password", password);
-        ApiResponse response = apiRequest(HttpMethod.POST, formData, null,
-                organizationId, applicationId, "token");
-        if (response == null) {
-            return response;
-        }
-        if (!isEmpty(response.getAccessToken()) && (response.getUser() != null)) {
-            loggedInUser = response.getUser();
-            accessToken = response.getAccessToken();
-            currentOrganization = null;
-            log.info("Client.authorizeAppUser(): Access token: " + accessToken);
-        } else {
-            log.info("Client.authorizeAppUser(): Response: " + response);
-        }
-        return response;
-    }
-
-    /**
-     * Change the password for the currently logged in user. You must supply the
-     * old password and the new password.
-     *
-     * @param username
-     * @param oldPassword
-     * @param newPassword
-     * @return
-     */
-    public ApiResponse changePassword(String username, String oldPassword,
-            String newPassword) {
-
-        Map<String, Object> data = new HashMap<String, Object>();
-        data.put("newpassword", newPassword);
-        data.put("oldpassword", oldPassword);
-
-        return apiRequest(HttpMethod.POST, null, data, organizationId,  applicationId, "users",
-                username, "password");
-
-    }
-
-    /**
-     * Log the user in with their numeric pin-code and get a valid access token.
-     *
-     * @param email
-     * @param pin
-     * @return non-null ApiResponse if request succeeds, check getError() for
-     *         "invalid_grant" to see if access is denied.
-     */
-    public ApiResponse authorizeAppUserViaPin(String email, String pin) {
-        validateNonEmptyParam(email, "email");
-        validateNonEmptyParam(pin, "pin");
-        assertValidApplicationId();
-        loggedInUser = null;
-        accessToken = null;
-        currentOrganization = null;
-        Map<String, Object> formData = new HashMap<String, Object>();
-        formData.put("grant_type", "pin");
-        formData.put("username", email);
-        formData.put("pin", pin);
-        ApiResponse response = apiRequest(HttpMethod.POST, formData, null,
-                organizationId,  applicationId, "token");
-        if (response == null) {
-            return response;
-        }
-        if (!isEmpty(response.getAccessToken()) && (response.getUser() != null)) {
-            loggedInUser = response.getUser();
-            accessToken = response.getAccessToken();
-            currentOrganization = null;
-            log.info("Client.authorizeAppUser(): Access token: " + accessToken);
-        } else {
-            log.info("Client.authorizeAppUser(): Response: " + response);
-        }
-        return response;
-    }
-
-    /**
-     * Log the user in with their Facebook access token retrived via Facebook
-     * OAuth.
-     *
-     * @param email
-     * @param pin
-     * @return non-null ApiResponse if request succeeds, check getError() for
-     *         "invalid_grant" to see if access is denied.
-     */
-    public ApiResponse authorizeAppUserViaFacebook(String fb_access_token) {
-        validateNonEmptyParam(fb_access_token, "Facebook token");
-        assertValidApplicationId();
-        loggedInUser = null;
-        accessToken = null;
-        currentOrganization = null;
-        Map<String, Object> formData = new HashMap<String, Object>();
-        formData.put("fb_access_token", fb_access_token);
-        ApiResponse response = apiRequest(HttpMethod.POST, formData, null,
-                organizationId,  applicationId, "auth", "facebook");
-        if (response == null) {
-            return response;
-        }
-        if (!isEmpty(response.getAccessToken()) && (response.getUser() != null)) {
-            loggedInUser = response.getUser();
-            accessToken = response.getAccessToken();
-            currentOrganization = null;
-            log.info("Client.authorizeAppUserViaFacebook(): Access token: "
-                    + accessToken);
-        } else {
-            log.info("Client.authorizeAppUserViaFacebook(): Response: "
-                    + response);
-        }
-        return response;
-    }
-
-    /**
-     * Log the app in with it's client id and client secret key. Not recommended
-     * for production apps.
-     *
-     * @param email
-     * @param pin
-     * @return non-null ApiResponse if request succeeds, check getError() for
-     *         "invalid_grant" to see if access is denied.
-     */
-    public ApiResponse authorizeAppClient(String clientId, String clientSecret) {
-        validateNonEmptyParam(clientId, "client identifier");
-        validateNonEmptyParam(clientSecret, "client secret");
-        assertValidApplicationId();
-        loggedInUser = null;
-        accessToken = null;
-        currentOrganization = null;
-        Map<String, Object> formData = new HashMap<String, Object>();
-        formData.put("grant_type", "client_credentials");
-        formData.put("client_id", clientId);
-        formData.put("client_secret", clientSecret);
-        ApiResponse response = apiRequest(HttpMethod.POST, formData, null,
-                organizationId, applicationId, "token");
-        if (response == null) {
-            return response;
-        }
-        if (!isEmpty(response.getAccessToken())) {
-            loggedInUser = null;
-            accessToken = response.getAccessToken();
-            currentOrganization = null;
-            log.info("Client.authorizeAppClient(): Access token: "
-                    + accessToken);
-        } else {
-            log.info("Client.authorizeAppClient(): Response: " + response);
-        }
-        return response;
-    }
-
-    private void validateNonEmptyParam(Object param, String paramName) {
-        if ( isEmpty(param) ) {
-            throw new IllegalArgumentException(paramName + " cannot be null or empty");
-        }
-    }
-
-    /**
-     * Registers a device using the device's unique device ID.
-     *
-     * @param context
-     * @param properties
-     * @return a Device object if success
-     */
-    public Device registerDevice(UUID deviceId, Map<String, Object> properties) {
-        assertValidApplicationId();
-        if (properties == null) {
-            properties = new HashMap<String, Object>();
-        }
-        properties.put("refreshed", System.currentTimeMillis());
-        ApiResponse response = apiRequest(HttpMethod.PUT, null, properties,
-                organizationId, applicationId, "devices", deviceId.toString());
-        return response.getFirstEntity(Device.class);
-    }
-
-    /**
-     * Registers a device using the device's unique device ID.
-     *
-     * @param context
-     * @param properties
-     * @return a Device object if success
-     */
-    public Device registerDeviceForPush(UUID deviceId,
-                                        String notifier,
-                                        String token,
-                                        Map<String, Object> properties) {
-      if (properties == null) {
-          properties = new HashMap<String, Object>();
-      }
-      String notifierKey = notifier + ".notifier.id";
-      properties.put(notifierKey, token);
-      return registerDevice(deviceId, properties);
-    }
-
-    /**
-     * Create a new entity on the server.
-     *
-     * @param entity
-     * @return an ApiResponse with the new entity in it.
-     */
-    public ApiResponse createEntity(Entity entity) {
-        assertValidApplicationId();
-        if (isEmpty(entity.getType())) {
-            throw new IllegalArgumentException("Missing entity type");
-        }
-        ApiResponse response = apiRequest(HttpMethod.POST, null, entity,
-                organizationId, applicationId, entity.getType());
-        return response;
-    }
-
-    /**
-     * Create a new entity on the server from a set of properties. Properties
-     * must include a "type" property.
-     *
-     * @param properties
-     * @return an ApiResponse with the new entity in it.
-     */
-    public ApiResponse createEntity(Map<String, Object> properties) {
-        assertValidApplicationId();
-        if (isEmpty(properties.get("type"))) {
-            throw new IllegalArgumentException("Missing entity type");
-        }
-        ApiResponse response = apiRequest(HttpMethod.POST, null, properties,
-                organizationId, applicationId, properties.get("type").toString());
-        return response;
-    }
-
-    /**
-     * Creates a user.
-     *
-     * @param username
-     *            required
-     * @param name
-     * @param email
-     * @param password
-     * @return
-     */
-    public ApiResponse createUser(String username, String name, String email,
-            String password) {
-        Map<String, Object> properties = new HashMap<String, Object>();
-        properties.put("type", "user");
-        if (username != null) {
-            properties.put("username", username);
-        }
-        if (name != null) {
-            properties.put("name", name);
-        }
-        if (email != null) {
-            properties.put("email", email);
-        }
-        if (password != null) {
-            properties.put("password", password);
-        }
-        return createEntity(properties);
-    }
-
-    /**
-     * Get the groups for the user.
-     *
-     * @param userId
-     * @return a map with the group path as the key and the Group entity as the
-     *         value
-     */
-    public Map<String, Group> getGroupsForUser(String userId) {
-        ApiResponse response = apiRequest(HttpMethod.GET, null, null,
-                organizationId, applicationId, "users", userId, "groups");
-        Map<String, Group> groupMap = new HashMap<String, Group>();
-        if (response != null) {
-            List<Group> groups = response.getEntities(Group.class);
-            for (Group group : groups) {
-                groupMap.put(group.getPath(), group);
-            }
-        }
-        return groupMap;
-    }
-
-    /**
-     * Get a user's activity feed. Returned as a query to ease paging.
-     *
-     * @param userId
-     * @return
-     */
-    public Query queryActivityFeedForUser(String userId) {
-        Query q = queryEntitiesRequest(HttpMethod.GET, null, null,
-                organizationId, applicationId, "users", userId, "feed");
-        return q;
-    }
-
-    /**
-     * Posts an activity to a user. Activity must already be created.
-     *
-     * @param userId
-     * @param activity
-     * @return
-     */
-    public ApiResponse postUserActivity(String userId, Activity activity) {
-        return apiRequest(HttpMethod.POST, null, activity,  organizationId, applicationId, "users",
-                userId, "activities");
-    }
-
-    /**
-     * Creates and posts an activity to a user.
-     *
-     * @param verb
-     * @param title
-     * @param content
-     * @param category
-     * @param user
-     * @param object
-     * @param objectType
-     * @param objectName
-     * @param objectContent
-     * @return
-     */
-    public ApiResponse postUserActivity(String verb, String title,
-            String content, String category, User user, Entity object,
-            String objectType, String objectName, String objectContent) {
-        Activity activity = Activity.newActivity(verb, title, content,
-                category, user, object, objectType, objectName, objectContent);
-        return postUserActivity(user.getUuid().toString(), activity);
-    }
-
-    /**
-     * Posts an activity to a group. Activity must already be created.
-     *
-     * @param userId
-     * @param activity
-     * @return
-     */
-    public ApiResponse postGroupActivity(String groupId, Activity activity) {
-        return apiRequest(HttpMethod.POST, null, activity, organizationId, applicationId, "groups",
-                groupId, "activities");
-    }
-
-    /**
-     * Creates and posts an activity to a group.
-     *
-     * @param groupId
-     * @param verb
-     * @param title
-     * @param content
-     * @param category
-     * @param user
-     * @param object
-     * @param objectType
-     * @param objectName
-     * @param objectContent
-     * @return
-     */
-    public ApiResponse postGroupActivity(String groupId, String verb, String title,
-            String content, String category, User user, Entity object,
-            String objectType, String objectName, String objectContent) {
-        Activity activity = Activity.newActivity(verb, title, content,
-                category, user, object, objectType, objectName, objectContent);
-        return postGroupActivity(groupId, activity);
-    }
-
-    /**
-     * Post an activity to the stream.
-     *
-     * @param activity
-     * @return
-     */
-    public ApiResponse postActivity(Activity activity) {
-        return createEntity(activity);
-    }
-
-    /**
-     * Creates and posts an activity to a group.
-     *
-     * @param verb
-     * @param title
-     * @param content
-     * @param category
-     * @param user
-     * @param object
-     * @param objectType
-     * @param objectName
-     * @param objectContent
-     * @return
-     */
-    public ApiResponse postActivity(String verb, String title,
-            String content, String category, User user, Entity object,
-            String objectType, String objectName, String objectContent) {
-        Activity activity = Activity.newActivity(verb, title, content,
-                category, user, object, objectType, objectName, objectContent);
-        return createEntity(activity);
-    }
-
-    /**
-     * Get a group's activity feed. Returned as a query to ease paging.
-     *
-     * @param userId
-     * @return
-     */
-    public Query queryActivity() {
-        Query q = queryEntitiesRequest(HttpMethod.GET, null, null,
-               organizationId, applicationId, "activities");
-        return q;
-    }
-
-
-
-    /**
-     * Get a group's activity feed. Returned as a query to ease paging.
-     *
-     * @param userId
-     * @return
-     */
-    public Query queryActivityFeedForGroup(String groupId) {
-        Query q = queryEntitiesRequest(HttpMethod.GET, null, null,
-                organizationId,  applicationId, "groups", groupId, "feed");
-        return q;
-    }
-
-    /**
-     * Perform a query request and return a query object. The Query object
-     * provides a simple way of dealing with result sets that need to be
-     * iterated or paged through.
-     *
-     * @param method
-     * @param params
-     * @param data
-     * @param segments
-     * @return
-     */
-    public Query queryEntitiesRequest(HttpMethod method,
-            Map<String, Object> params, Object data, String... segments) {
-        ApiResponse response = apiRequest(method, params, data, segments);
-        return new EntityQuery(response, method, params, data, segments);
-    }
-
-    /**
-     * Perform a query of the users collection.
-     *
-     * @return
-     */
-    public Query queryUsers() {
-        Query q = queryEntitiesRequest(HttpMethod.GET, null, null,
-                organizationId,  applicationId, "users");
-        return q;
-    }
-
-    /**
-     * Perform a query of the users collection using the provided query command.
-     * For example: "name contains 'ed'".
-     *
-     * @param ql
-     * @return
-     */
-    public Query queryUsers(String ql) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("ql", ql);
-        Query q = queryEntitiesRequest(HttpMethod.GET, params, null,organizationId,
-                applicationId, "users");
-        return q;
-    }
-
-    /**
-     * Perform a query of the users collection within the specified distance of
-     * the specified location and optionally using the provided query command.
-     * For example: "name contains 'ed'".
-     *
-     * @param distance
-     * @param location
-     * @param ql
-     * @return
-     */
-    public Query queryUsersWithinLocation(float distance, float lattitude,
-            float longitude, String ql) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("ql",
-                this.makeLocationQL(distance, lattitude, longitude, ql));
-        Query q = queryEntitiesRequest(HttpMethod.GET, params, null, organizationId,
-                applicationId, "users");
-        return q;
-    }
-
-    /**
-     * Queries the users for the specified group.
-     *
-     * @param groupId
-     * @return
-     */
-    public Query queryUsersForGroup(String groupId) {
-        Query q = queryEntitiesRequest(HttpMethod.GET, null, null, organizationId,
-                applicationId, "groups", groupId, "users");
-        return q;
-    }
-
-    /**
-     * Adds a user to the specified groups.
-     *
-     * @param userId
-     * @param groupId
-     * @return
-     */
-    public ApiResponse addUserToGroup(String userId, String groupId) {
-        return apiRequest(HttpMethod.POST, null, null, organizationId,  applicationId, "groups",
-                groupId, "users", userId);
-    }
-
-    /**
-     * Creates a group with the specified group path. Group paths can be slash
-     * ("/") delimited like file paths for hierarchical group relationships.
-     *
-     * @param groupPath
-     * @return
-     */
-    public ApiResponse createGroup(String groupPath) {
-        return createGroup(groupPath, null);
-    }
-
-    /**
-     * Creates a group with the specified group path and group title. Group
-     * paths can be slash ("/") delimited like file paths for hierarchical group
-     * relationships.
-     *
-     * @param groupPath
-     * @param groupTitle
-     * @return
-     */
-    public ApiResponse createGroup(String groupPath, String groupTitle) {
-     return createGroup(groupPath, groupTitle, null);
-    }
-
-    /**
-     * Create a group with a path, title and name
-     * @param groupPath
-     * @param groupTitle
-     * @param groupName
-     * @return
-     */
-    public ApiResponse createGroup(String groupPath, String groupTitle, String groupName){
-        Map<String, Object> data = new HashMap<String, Object>();
-        data.put("type", "group");
-        data.put("path", groupPath);
-
-        if (groupTitle != null) {
-            data.put("title", groupTitle);
-        }
-
-        if(groupName != null){
-            data.put("name", groupName);
-        }
-
-        return apiRequest(HttpMethod.POST, null, data,  organizationId, applicationId, "groups");
-    }
-
-    /**
-     * Perform a query of the users collection using the provided query command.
-     * For example: "name contains 'ed'".
-     *
-     * @param ql
-     * @return
-     */
-    public Query queryGroups(String ql) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("ql", ql);
-        Query q = queryEntitiesRequest(HttpMethod.GET, params, null, organizationId,
-                applicationId, "groups");
-        return q;
-    }
-
-
-
-    /**
-     * Connect two entities together.
-     *
-     * @param connectingEntityType
-     * @param connectingEntityId
-     * @param connectionType
-     * @param connectedEntityId
-     * @return
-     */
-    public ApiResponse connectEntities(String connectingEntityType,
-            String connectingEntityId, String connectionType,
-            String connectedEntityId) {
-        return apiRequest(HttpMethod.POST, null, null,  organizationId, applicationId,
-                connectingEntityType, connectingEntityId, connectionType,
-                connectedEntityId);
-    }
-
-    /**
-     * Disconnect two entities.
-     *
-     * @param connectingEntityType
-     * @param connectingEntityId
-     * @param connectionType
-     * @param connectedEntityId
-     * @return
-     */
-    public ApiResponse disconnectEntities(String connectingEntityType,
-            String connectingEntityId, String connectionType,
-            String connectedEntityId) {
-        return apiRequest(HttpMethod.DELETE, null, null,  organizationId, applicationId,
-                connectingEntityType, connectingEntityId, connectionType,
-                connectedEntityId);
-    }
-
-    /**
-     * Query the connected entities.
-     *
-     * @param connectingEntityType
-     * @param connectingEntityId
-     * @param connectionType
-     * @param ql
-     * @return
-     */
-    public Query queryEntityConnections(String connectingEntityType,
-            String connectingEntityId, String connectionType, String ql) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("ql", ql);
-        Query q = queryEntitiesRequest(HttpMethod.GET, params, null,
-                organizationId, applicationId, connectingEntityType, connectingEntityId,
-                connectionType);
-        return q;
-    }
-
-    protected String makeLocationQL(float distance, double lattitude,
-            double longitude, String ql) {
-        String within = String.format("within %d of %d , %d", distance,
-                lattitude, longitude);
-        ql = ql == null ? within : within + " and " + ql;
-        return ql;
-    }
-
-    /**
-     * Query the connected entities within distance of a specific point.
-     *
-     * @param connectingEntityType
-     * @param connectingEntityId
-     * @param connectionType
-     * @param distance
-     * @param latitude
-     * @param longitude
-     * @return
-     */
-    public Query queryEntityConnectionsWithinLocation(
-            String connectingEntityType, String connectingEntityId,
-            String connectionType, float distance, float lattitude,
-            float longitude, String ql) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("ql", makeLocationQL(distance, lattitude, longitude, ql));
-        Query q = queryEntitiesRequest(HttpMethod.GET, params, null, organizationId,
-                applicationId, connectingEntityType, connectingEntityId,
-                connectionType);
-        return q;
-    }
-
-    public interface Query {
-
-        public ApiResponse getResponse();
-
-        public boolean more();
-
-        public Query next();
-
-    }
-
-    /**
-     * Query object
-     *
-     */
-    private class EntityQuery implements Query {
-        final HttpMethod method;
-        final Map<String, Object> params;
-        final Object data;
-        final String[] segments;
-        final ApiResponse response;
-
-        private EntityQuery(ApiResponse response, HttpMethod method,
-                Map<String, Object> params, Object data, String[] segments) {
-            this.response = response;
-            this.method = method;
-            this.params = params;
-            this.data = data;
-            this.segments = segments;
-        }
-
-        private EntityQuery(ApiResponse response, EntityQuery q) {
-            this.response = response;
-            method = q.method;
-            params = q.params;
-            data = q.data;
-            segments = q.segments;
-        }
-
-        /**
-         * @return the api response of the last request
-         */
-        public ApiResponse getResponse() {
-            return response;
-        }
-
-        /**
-         * @return true if the server indicates more results are available
-         */
-        public boolean more() {
-            if ((response != null) && (response.getCursor() != null)
-                    && (response.getCursor().length() > 0)) {
-                return true;
-            }
-            return false;
-        }
-
-        /**
-         * Performs a request for the next set of results
-         *
-         * @return query that contains results and where to get more from.
-         */
-        public Query next() {
-            if (more()) {
-                Map<String, Object> nextParams = null;
-                if (params != null) {
-                    nextParams = new HashMap<String, Object>(params);
-                } else {
-                    nextParams = new HashMap<String, Object>();
-                }
-                nextParams.put("cursor", response.getCursor());
-                ApiResponse nextResponse = apiRequest(method, nextParams, data,
-                        segments);
-                return new EntityQuery(nextResponse, this);
-            }
-            return null;
-        }
-
-    }
-
-    private String normalizeQueuePath(String path) {
-        return arrayToDelimitedString(
-                tokenizeToStringArray(path, "/", true, true), "/");
-    }
-
-    public ApiResponse postMessage(String path, Map<String, Object> message) {
-        return apiRequest(HttpMethod.POST, null, message, organizationId,  applicationId,
-                "queues", normalizeQueuePath(path));
-    }
-
-    public ApiResponse postMessage(String path,
-            List<Map<String, Object>> messages) {
-        return apiRequest(HttpMethod.POST, null, messages,  organizationId, applicationId,
-                "queues", normalizeQueuePath(path));
-    }
-
-    public enum QueuePosition {
-        START("start"), END("end"), LAST("last"), CONSUMER("consumer");
-
-        private final String shortName;
-
-        QueuePosition(String shortName) {
-            this.shortName = shortName;
-        }
-
-        static Map<String, QueuePosition> nameMap = new ConcurrentHashMap<String, QueuePosition>();
-
-        static {
-            for (QueuePosition op : EnumSet.allOf(QueuePosition.class)) {
-                if (op.shortName != null) {
-                    nameMap.put(op.shortName, op);
-                }
-            }
-        }
-
-        public static QueuePosition find(String s) {
-            if (s == null) {
-                return null;
-            }
-            return nameMap.get(s);
-        }
-
-        @Override
-        public String toString() {
-            return shortName;
-        }
-    }
-
-    public ApiResponse getMessages(String path, String consumer, UUID last,
-            Long time, Integer prev, Integer next, Integer limit,
-            QueuePosition pos, Boolean update, Boolean sync) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        if (consumer != null) {
-            params.put("consumer", consumer);
-        }
-        if (last != null) {
-            params.put("last", last);
-        }
-        if (time != null) {
-            params.put("time", time);
-        }
-        if (prev != null) {
-            params.put("prev", prev);
-        }
-        if (next != null) {
-            params.put("next", next);
-        }
-        if (limit != null) {
-            params.put("limit", limit);
-        }
-        if (pos != null) {
-            params.put("pos", pos.toString());
-        }
-        if (update != null) {
-            params.put("update", update);
-        }
-        if (sync != null) {
-            params.put("synchronized", sync);
-        }
-        return apiRequest(HttpMethod.GET, params, null,  organizationId, applicationId,
-                "queues", normalizeQueuePath(path));
-    }
-
-    public ApiResponse addSubscriber(String publisherQueue,
-            String subscriberQueue) {
-        return apiRequest(HttpMethod.POST, null, null, organizationId,  applicationId, "queues",
-                normalizeQueuePath(publisherQueue), "subscribers",
-                normalizeQueuePath(subscriberQueue));
-    }
-
-    public ApiResponse removeSubscriber(String publisherQueue,
-            String subscriberQueue) {
-        return apiRequest(HttpMethod.DELETE, null, null, organizationId,  applicationId,
-                "queues", normalizeQueuePath(publisherQueue), "subscribers",
-                normalizeQueuePath(subscriberQueue));
-    }
-
-    private class QueueQuery implements Query {
-        final HttpMethod method;
-        final Map<String, Object> params;
-        final Object data;
-        final String queuePath;
-        final ApiResponse response;
-
-        private QueueQuery(ApiResponse response, HttpMethod method,
-                Map<String, Object> params, Object data, String queuePath) {
-            this.response = response;
-            this.method = method;
-            this.params = params;
-            this.data = data;
-            this.queuePath = normalizeQueuePath(queuePath);
-        }
-
-        private QueueQuery(ApiResponse response, QueueQuery q) {
-            this.response = response;
-            method = q.method;
-            params = q.params;
-            data = q.data;
-            queuePath = q.queuePath;
-        }
-
-        /**
-         * @return the api response of the last request
-         */
-        public ApiResponse getResponse() {
-            return response;
-        }
-
-        /**
-         * @return true if the server indicates more results are available
-         */
-        public boolean more() {
-            if ((response != null) && (response.getCursor() != null)
-                    && (response.getCursor().length() > 0)) {
-                return true;
-            }
-            return false;
-        }
-
-        /**
-         * Performs a request for the next set of results
-         *
-         * @return query that contains results and where to get more from.
-         */
-        public Query next() {
-            if (more()) {
-                Map<String, Object> nextParams = null;
-                if (params != null) {
-                    nextParams = new HashMap<String, Object>(params);
-                } else {
-                    nextParams = new HashMap<String, Object>();
-                }
-                nextParams.put("start", response.getCursor());
-                ApiResponse nextResponse = apiRequest(method, nextParams, data,
-                        queuePath);
-                return new QueueQuery(nextResponse, this);
-            }
-            return null;
-        }
-
-    }
-
-    public Query queryQueuesRequest(HttpMethod method,
-            Map<String, Object> params, Object data, String queuePath) {
-        ApiResponse response = apiRequest(method, params, data, queuePath);
-        return new QueueQuery(response, method, params, data, queuePath);
-    }
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/Usergrid.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/Usergrid.java
new file mode 100644
index 0000000..f7cd545
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/Usergrid.java
@@ -0,0 +1,285 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client;
+
+import org.apache.usergrid.java.client.UsergridEnums.UsergridAuthMode;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.auth.UsergridAuth;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.model.*;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.apache.usergrid.java.client.UsergridEnums.UsergridDirection;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.List;
+import java.util.Map;
+
+@SuppressWarnings("unused")
+public final class Usergrid {
+    @NotNull public static final String UsergridSDKVersion = "2.1.0";
+
+    private static UsergridClient sharedClient;
+    private Usergrid() { /** Private constructor because we only have static methods. **/ }
+
+    public static boolean isInitialized() {
+        return (Usergrid.sharedClient != null);
+    }
+    public static void reset() { Usergrid.sharedClient = null; }
+
+    @NotNull
+    public static UsergridClient getInstance() throws NullPointerException {
+        if (!Usergrid.isInitialized()) {
+            throw new NullPointerException("Shared client has not been initialized!");
+        }
+        return Usergrid.sharedClient;
+    }
+
+    @NotNull
+    public static UsergridClient initSharedInstance(@NotNull final UsergridClientConfig config) {
+        if (Usergrid.isInitialized()) {
+            System.out.print("The Usergrid shared instance was already initialized. All subsequent initialization attempts (including this) will be ignored.");
+        } else {
+            Usergrid.sharedClient = new UsergridClient(config);
+        }
+        return Usergrid.sharedClient;
+    }
+
+    @NotNull
+    public static UsergridClient initSharedInstance(@NotNull final String orgId, @NotNull final String appId) {
+        return Usergrid.initSharedInstance(new UsergridClientConfig(orgId, appId));
+    }
+
+    @NotNull
+    public static UsergridClient initSharedInstance(@NotNull final String orgId, @NotNull final String appId, @NotNull final String baseUrl) {
+        return Usergrid.initSharedInstance(new UsergridClientConfig(orgId, appId, baseUrl));
+    }
+
+    @NotNull
+    public static UsergridClient initSharedInstance(@NotNull final String orgId, @NotNull final String appId, @NotNull final String baseUrl, @NotNull final UsergridAuthMode authMode) {
+        return Usergrid.initSharedInstance(new UsergridClientConfig(orgId, appId, baseUrl, authMode));
+    }
+
+    @NotNull public static UsergridClientConfig getConfig() { return Usergrid.getInstance().getConfig(); }
+    public static void setConfig(@NotNull UsergridClientConfig config) { Usergrid.getInstance().setConfig(config); }
+
+    @NotNull public static String getAppId() { return Usergrid.getInstance().getAppId(); }
+    public static void setAppId(@NotNull String appId) { Usergrid.getInstance().setAppId(appId); }
+
+    @NotNull public static String getOrgId() { return Usergrid.getInstance().getOrgId(); }
+    public static void setOrgId(@NotNull String orgId) { Usergrid.getInstance().setOrgId(orgId); }
+
+    @NotNull public static String getBaseUrl() { return Usergrid.getInstance().getBaseUrl(); }
+    public static void setBaseUrl(@NotNull String baseUrl) { Usergrid.getInstance().setBaseUrl(baseUrl); }
+
+    @NotNull public static String clientAppUrl() { return Usergrid.getInstance().clientAppUrl(); }
+
+    @NotNull public static UsergridAuthMode getAuthMode() { return Usergrid.getInstance().getAuthMode(); }
+    public static void setAuthMode(@NotNull final UsergridAuthMode authMode) { Usergrid.getInstance().setAuthMode(authMode); }
+
+    @Nullable public static UsergridAppAuth getAppAuth() { return Usergrid.getInstance().getAppAuth(); }
+    public static void setAppAuth(@Nullable final UsergridAppAuth appAuth) { Usergrid.getInstance().setAppAuth(appAuth); }
+
+    @Nullable public static UsergridUser getCurrentUser() { return Usergrid.getInstance().getCurrentUser(); }
+    public static void setCurrentUser(@Nullable final UsergridUser currentUser) { Usergrid.getInstance().setCurrentUser(currentUser); }
+
+    @Nullable
+    public static UsergridAuth authForRequests() {
+        return Usergrid.getInstance().authForRequests();
+    }
+
+    @NotNull
+    public static UsergridClient usingAuth(@NotNull final UsergridAuth auth) {
+        return Usergrid.getInstance().usingAuth(auth);
+    }
+
+    @NotNull
+    public static UsergridClient usingToken(@NotNull final String accessToken) {
+        return Usergrid.getInstance().usingToken(accessToken);
+    }
+
+    @NotNull
+    public static UsergridResponse resetPassword(@NotNull final UsergridUser user, @NotNull final String oldPassword, @NotNull final String newPassword) {
+        return Usergrid.getInstance().resetPassword(user, oldPassword, newPassword);
+    }
+
+    @NotNull
+    public static UsergridResponse authenticateApp() {
+        return Usergrid.getInstance().authenticateApp();
+    }
+
+    @NotNull
+    public static UsergridResponse authenticateApp(@NotNull final UsergridAppAuth appAuth) {
+        return Usergrid.getInstance().authenticateApp(appAuth);
+    }
+
+    @NotNull
+    public static UsergridResponse authenticateUser(@NotNull final UsergridUserAuth userAuth) {
+        return Usergrid.getInstance().authenticateUser(userAuth);
+    }
+
+    @NotNull
+    public static UsergridResponse authenticateUser(@NotNull final UsergridUserAuth userAuth, final boolean setAsCurrentUser) {
+        return Usergrid.getInstance().authenticateUser(userAuth,setAsCurrentUser);
+    }
+
+    @NotNull
+    public static UsergridResponse logoutCurrentUser() {
+        return Usergrid.getInstance().logoutCurrentUser();
+    }
+
+    @NotNull
+    public static UsergridResponse logoutUserAllTokens(@NotNull final String uuidOrUsername) {
+        return Usergrid.getInstance().logoutUserAllTokens(uuidOrUsername);
+    }
+
+    @NotNull
+    public static UsergridResponse logoutUser(@NotNull final String uuidOrUsername, @Nullable final String token) {
+        return Usergrid.getInstance().logoutUser(uuidOrUsername,token);
+    }
+
+    @NotNull
+    public static UsergridResponse sendRequest(@NotNull final UsergridRequest request) {
+        return Usergrid.getInstance().sendRequest(request);
+    }
+
+    @NotNull
+    public static UsergridResponse GET(@NotNull final String type, @NotNull final String uuidOrName) {
+        return Usergrid.getInstance().GET(type, uuidOrName);
+    }
+
+    @NotNull
+    public static UsergridResponse GET(@NotNull final String type) {
+        return Usergrid.getInstance().GET(type);
+    }
+
+    @NotNull
+    public static UsergridResponse GET(@NotNull final UsergridQuery query) {
+        return Usergrid.getInstance().GET(query);
+    }
+
+    @NotNull
+    public static UsergridResponse PUT(@NotNull final String type, @NotNull final String uuidOrName, @NotNull final Map<String, ?> jsonBody) {
+        return Usergrid.getInstance().PUT(type, uuidOrName, jsonBody);
+    }
+
+    @NotNull
+    public static UsergridResponse PUT(@NotNull final String type, @NotNull final Map<String, ?> jsonBody) {
+        return Usergrid.getInstance().PUT(type, jsonBody);
+    }
+
+    @NotNull
+    public static UsergridResponse PUT(@NotNull final UsergridEntity entity) {
+        return Usergrid.getInstance().PUT(entity);
+    }
+
+    @NotNull
+    public static UsergridResponse PUT(@NotNull final UsergridQuery query, @NotNull final Map<String, ?> jsonBody) {
+        return Usergrid.getInstance().PUT(query, jsonBody);
+    }
+
+    @NotNull
+    public static UsergridResponse POST(@NotNull final String type, @NotNull final String uuidOrName, @NotNull final Map<String, Object> jsonBody) {
+        return Usergrid.getInstance().POST(type, uuidOrName, jsonBody);
+    }
+
+    @NotNull
+    public static UsergridResponse POST(@NotNull final String type, @NotNull final Map<String, ?> jsonBody) {
+        return Usergrid.getInstance().POST(type, jsonBody);
+    }
+
+    @NotNull
+    public static UsergridResponse POST(@NotNull final String type, @NotNull final List<Map<String, ?>> jsonBodies) {
+        return Usergrid.getInstance().POST(type, jsonBodies);
+    }
+
+    @NotNull
+    public static UsergridResponse POST(@NotNull final UsergridEntity entity) throws NullPointerException {
+        return Usergrid.getInstance().POST(entity);
+    }
+
+    @NotNull
+    public static UsergridResponse POST(@NotNull final List<UsergridEntity> entities) {
+        return Usergrid.getInstance().POST(entities);
+    }
+
+    @NotNull
+    public static UsergridResponse DELETE(@NotNull final String type, @NotNull final String uuidOrName) {
+        return Usergrid.getInstance().DELETE(type, uuidOrName);
+    }
+
+    @NotNull
+    public static UsergridResponse DELETE(@NotNull final UsergridEntity entity) {
+        return Usergrid.getInstance().DELETE(entity);
+    }
+
+    @NotNull
+    public static UsergridResponse DELETE(@NotNull final UsergridQuery query) {
+        return Usergrid.getInstance().DELETE(query);
+    }
+
+    @NotNull
+    public static UsergridResponse connect(@NotNull final UsergridEntity entity, @NotNull final String relationship, @NotNull final UsergridEntity to) {
+        return Usergrid.getInstance().connect(entity, relationship, to);
+    }
+
+    @NotNull
+    public static UsergridResponse connect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String fromUuid) {
+        return Usergrid.getInstance().connect(entityType,entityId,relationship,fromUuid);
+    }
+
+    @NotNull
+    public static UsergridResponse connect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String toType, @NotNull final String toName) {
+        return Usergrid.getInstance().connect(entityType,entityId,relationship,toType,toName);
+    }
+
+    @NotNull
+    public static UsergridResponse disconnect(@NotNull final UsergridEntity entity, @NotNull final String relationship, @NotNull final UsergridEntity from) {
+        return Usergrid.getInstance().disconnect(entity, relationship, from);
+    }
+
+    @NotNull
+    public static UsergridResponse disconnect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String fromUuid) {
+        return Usergrid.getInstance().disconnect(entityType, entityId, relationship, fromUuid);
+    }
+
+    @NotNull
+    public static UsergridResponse disconnect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String fromType, @NotNull final String fromName) {
+        return Usergrid.getInstance().disconnect(entityType, entityId, relationship, fromType, fromName);
+    }
+
+    @NotNull
+    public static UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final UsergridEntity entity, @NotNull final String relationship) {
+        return Usergrid.getInstance().getConnections(direction, entity, relationship);
+    }
+
+    @NotNull
+    public static UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final UsergridEntity entity, @NotNull final String relationship, @Nullable final UsergridQuery query) {
+        return Usergrid.getInstance().getConnections(direction, entity, relationship, query);
+    }
+
+    @NotNull
+    public static UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final String type, @NotNull final String uuidOrName, @NotNull final String relationship, @Nullable final UsergridQuery query) {
+        return Usergrid.getInstance().getConnections(direction,type,uuidOrName,relationship,query);
+    }
+
+    @NotNull
+    public static UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final String uuid, @NotNull final String relationship, @Nullable final UsergridQuery query) {
+        return Usergrid.getInstance().getConnections(direction, uuid, relationship, query);
+    }
+}
\ No newline at end of file
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridClient.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridClient.java
new file mode 100644
index 0000000..87a84ae
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridClient.java
@@ -0,0 +1,427 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client;
+
+import org.apache.usergrid.java.client.UsergridEnums.*;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.auth.UsergridAuth;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.model.*;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@SuppressWarnings("unused")
+public class UsergridClient {
+
+    @NotNull public static String DEFAULT_BASE_URL = "https://api.usergrid.com";
+
+    @NotNull private UsergridClientConfig config;
+    @Nullable private UsergridUser currentUser = null;
+    @Nullable private UsergridAuth tempAuth = null;
+
+    @NotNull private final UsergridRequestManager requestManager;
+
+    public UsergridClient(@NotNull final UsergridClientConfig config) {
+        this.config = config;
+        this.requestManager = new UsergridRequestManager(this);
+    }
+
+    public UsergridClient(@NotNull final String orgId, @NotNull final String appId) {
+        this(new UsergridClientConfig(orgId, appId));
+    }
+
+    public UsergridClient(@NotNull final String orgId, @NotNull final String appId, @NotNull final String baseUrl) {
+        this(new UsergridClientConfig(orgId, appId, baseUrl));
+    }
+
+    public UsergridClient(@NotNull final String orgId, @NotNull final String appId, @NotNull final String baseUrl, @NotNull final UsergridAuthMode authMode) {
+        this(new UsergridClientConfig(orgId, appId, baseUrl, authMode));
+    }
+
+    @NotNull public UsergridClientConfig getConfig() { return this.config; }
+    public void setConfig(@NotNull final UsergridClientConfig config) { this.config = config; }
+
+    @NotNull public String getAppId() { return this.config.appId; }
+    public void setAppId(@NotNull final String appId) { this.config.appId = appId; }
+
+    @NotNull public String getOrgId() { return this.config.orgId; }
+    public void setOrgId(@NotNull final String orgId) { this.config.orgId = orgId; }
+
+    @NotNull public String getBaseUrl() { return this.config.baseUrl; }
+    public void setBaseUrl(@NotNull final String baseUrl) { this.config.baseUrl = baseUrl; }
+
+    @NotNull public String clientAppUrl() { return getBaseUrl() + "/" + getOrgId() + "/" + getAppId(); }
+
+    @NotNull public UsergridAuthMode getAuthMode() { return this.config.authMode; }
+    public void setAuthMode(@NotNull final UsergridAuthMode authMode) { this.config.authMode = authMode; }
+
+    @Nullable public UsergridUser getCurrentUser() { return this.currentUser; }
+    public void setCurrentUser(@Nullable final UsergridUser currentUser) { this.currentUser = currentUser; }
+
+    @Nullable public UsergridUserAuth getUserAuth() { return (this.currentUser != null) ? this.currentUser.getUserAuth() : null; }
+
+    @Nullable public UsergridAppAuth getAppAuth() { return this.config.appAuth; }
+    public void setAppAuth(@Nullable final UsergridAppAuth appAuth) { this.config.appAuth = appAuth; }
+
+    @Nullable
+    public UsergridAuth authForRequests() {
+        UsergridAuth authForRequests = null;
+        if (tempAuth != null) {
+            if (tempAuth.isValidToken()) {
+                authForRequests = tempAuth;
+            }
+            tempAuth = null;
+        } else {
+            switch (config.authMode) {
+                case USER: {
+                    if (this.currentUser != null && this.currentUser.getUserAuth() != null && this.currentUser.getUserAuth().isValidToken()) {
+                        authForRequests = this.currentUser.getUserAuth();
+                    }
+                    break;
+                }
+                case APP: {
+                    if (this.config.appAuth != null && this.config.appAuth.isValidToken()) {
+                        authForRequests = this.config.appAuth;
+                    }
+                    break;
+                }
+            }
+        }
+        return authForRequests;
+    }
+
+    @NotNull
+    public UsergridClient usingAuth(@Nullable final UsergridAuth auth) {
+        this.tempAuth = auth;
+        return this;
+    }
+
+    @NotNull
+    public UsergridClient usingToken(@NotNull final String accessToken) {
+        this.tempAuth = new UsergridAuth(accessToken);
+        return this;
+    }
+
+    @NotNull
+    public UsergridResponse authenticateApp() {
+        if( this.config.appAuth == null ) {
+            return UsergridResponse.fromError(this,  "Invalid UsergridAppAuth.", "UsergridClient's appAuth is null.");
+        }
+        return this.authenticateApp(this.config.appAuth);
+    }
+
+    @NotNull
+    public UsergridResponse authenticateApp(@NotNull final UsergridAppAuth auth) {
+        this.config.appAuth = auth;
+        return this.requestManager.authenticateApp(auth);
+    }
+
+    @NotNull
+    public UsergridResponse authenticateUser(@NotNull final UsergridUserAuth userAuth) {
+        return this.authenticateUser(userAuth,true);
+    }
+
+    @NotNull
+    public UsergridResponse authenticateUser(@NotNull final UsergridUserAuth userAuth, final boolean setAsCurrentUser) {
+        UsergridResponse response = this.requestManager.authenticateUser(userAuth);
+        if( response.ok() && setAsCurrentUser ) {
+            this.setCurrentUser(response.user());
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse resetPassword(@NotNull final UsergridUser user, @NotNull final String oldPassword, @NotNull final String newPassword) {
+        String usernameOrEmail = user.usernameOrEmail();
+        if( usernameOrEmail == null ) {
+            return UsergridResponse.fromError(this,  "Error resetting password.", "The UsergridUser object must contain a valid username or email to reset the password.");
+        }
+        Map<String, Object> data = new HashMap<>();
+        data.put("newpassword", newPassword);
+        data.put("oldpassword", oldPassword);
+        String[] pathSegments = { "users", usernameOrEmail, "password"};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, data, this.authForRequests() ,pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse logoutCurrentUser()  {
+        UsergridUser currentUser = this.currentUser;
+        if( currentUser != null ) {
+            String uuidOrUsername = currentUser.uuidOrUsername();
+            UsergridUserAuth userAuth = currentUser.getUserAuth();
+            if( uuidOrUsername != null && userAuth != null ) {
+                String accessToken = userAuth.getAccessToken();
+                if( accessToken != null ) {
+                    return logoutUser(uuidOrUsername, accessToken);
+                }
+            }
+        }
+        return UsergridResponse.fromError(this,"UsergridClient's currentUser is not valid.", "UsergridClient's currentUser is null or has no uuid or username.");
+    }
+
+    @NotNull
+    public UsergridResponse logoutUserAllTokens(@NotNull final String uuidOrUsername) {
+        return logoutUser(uuidOrUsername, null);
+    }
+
+    @NotNull
+    public UsergridResponse logoutUser(@NotNull final String uuidOrUsername, @Nullable final String token){
+        String[] pathSegments = {"users", uuidOrUsername, ""};
+        int len = pathSegments.length;
+        Map<String, Object> param = new HashMap<>();
+        if(token != null){
+            pathSegments[len-1] = "revoketoken";
+            param.put("token",token);
+        }
+        else{
+            pathSegments[len-1] = "revoketokens";
+        }
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.PUT, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), param, null, this.authForRequests() , pathSegments);
+        UsergridResponse response = this.sendRequest(request);
+        UsergridUser currentUser = this.getCurrentUser();
+        if( currentUser != null && response.ok() ) {
+            if( uuidOrUsername.equalsIgnoreCase(currentUser.uuidOrUsername()) ) {
+                this.setCurrentUser(null);
+            }
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse sendRequest(@NotNull final UsergridRequest request) {
+        return this.requestManager.performRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse GET(@NotNull final String type, @NotNull final String uuidOrName) {
+        String[] pathSegments = {type, uuidOrName};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse GET(@NotNull final String type) {
+        String[] pathSegments = {type};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse GET(@NotNull final UsergridQuery query) {
+        String collectionName = query.getCollection();
+        if( collectionName == null ) {
+            return UsergridResponse.fromError(this,  "Query collection name missing.", "Query collection name is missing.");
+        }
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), query, this.authForRequests() , collectionName);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse PUT(@NotNull final String type, @NotNull final String uuidOrName, @NotNull final Map<String, ?> jsonBody) {
+        String[] pathSegments = { type, uuidOrName };
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.PUT, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, jsonBody, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse PUT(@NotNull final String type, @NotNull final Map<String, ?> jsonBody) {
+        String uuidOrName = null;
+        Object uuid = jsonBody.get(UsergridEntityProperties.UUID.toString());
+        if( uuid != null ) {
+            uuidOrName = uuid.toString();
+        } else {
+            Object name = jsonBody.get(UsergridEntityProperties.NAME.toString());
+            if( name != null ) {
+                uuidOrName = name.toString();
+            }
+        }
+        if( uuidOrName == null ) {
+            return UsergridResponse.fromError(this,  "jsonBody not valid..", "The `jsonBody` must contain a valid value for either `uuid` or `name`.");
+        }
+        String[] pathSegments = { type, uuidOrName };
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.PUT, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, jsonBody, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse PUT(@NotNull final UsergridEntity entity) {
+        String entityUuidOrName = entity.uuidOrName();
+        if( entityUuidOrName == null ) {
+            return UsergridResponse.fromError(this,  "No UUID or name found.", "The entity object must have a `uuid` or `name` assigned.");
+        }
+        String[] pathSegments = { entity.getType(), entityUuidOrName };
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.PUT, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, entity, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse PUT(@NotNull final UsergridQuery query, @NotNull final Map<String, ?> jsonBody) {
+        String collectionName = query.getCollection();
+        if( collectionName == null ) {
+            return UsergridResponse.fromError(this,  "Query collection name missing.", "Query collection name is missing.");
+        }
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.PUT, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, jsonBody, null, query, this.authForRequests(),collectionName);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse POST(final @NotNull UsergridEntity entity) {
+        String[] pathSegments = {entity.getType()};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, entity, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse POST(@NotNull final List<UsergridEntity> entities) {
+        if( entities.isEmpty() ) {
+            return UsergridResponse.fromError(this,  "Unable to POST entities.", "entities array is empty.");
+        }
+        String[] pathSegments = {entities.get(0).getType()};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, entities, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse POST(@NotNull final String type, @NotNull final String uuidOrName, @NotNull final Map<String, ?> jsonBody) {
+        String[] pathSegments = {type, uuidOrName};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, jsonBody, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse POST(@NotNull final String type, @NotNull final Map<String, ?> jsonBody) {
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, jsonBody, this.authForRequests() , type);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse POST(@NotNull final String type, @NotNull final List<Map<String, ?>> jsonBodies) {
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), null, jsonBodies, this.authForRequests() , type);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse DELETE(@NotNull final UsergridEntity entity) {
+        String entityUuidOrName = entity.uuidOrName();
+        if( entityUuidOrName == null ) {
+            return UsergridResponse.fromError(this,  "No UUID or name found.", "The entity object must have a `uuid` or `name` assigned.");
+        }
+        String[] pathSegments = {entity.getType(), entityUuidOrName};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.DELETE, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse DELETE(@NotNull final String type, @NotNull final String uuidOrName) {
+        String[] pathSegments = {type, uuidOrName};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.DELETE, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse DELETE(@NotNull final UsergridQuery query) {
+        String collectionName = query.getCollection();
+        if( collectionName == null ) {
+            return UsergridResponse.fromError(this,  "Query collection name missing.", "Query collection name is missing.");
+        }
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.DELETE, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), query, this.authForRequests() , collectionName);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse connect(@NotNull final UsergridEntity entity, @NotNull final String relationship, @NotNull final UsergridEntity to) {
+        String entityUuidOrName = entity.uuidOrName();
+        String toUuidOrName = to.uuidOrName();
+        if( entityUuidOrName == null || toUuidOrName == null ) {
+            return UsergridResponse.fromError(this, "Invalid Entity Connection Attempt.", "One or both entities that are attempting to be connected do not contain a valid UUID or Name property.");
+        }
+        return this.connect(entity.getType(), entityUuidOrName, relationship, to.getType(), toUuidOrName);
+    }
+
+    @NotNull
+    public UsergridResponse connect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String toType, @NotNull final String toName) {
+        String[] pathSegments = {entityType, entityId, relationship, toType, toName};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse connect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String toId) {
+        String[] pathSegments = { entityType, entityId, relationship, toId};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse disconnect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String fromUuid) {
+        String[] pathSegments = {entityType, entityId, relationship, fromUuid};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.DELETE, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse disconnect(@NotNull final String entityType, @NotNull final String entityId, @NotNull final String relationship, @NotNull final String fromType, @NotNull final String fromName) {
+        String[] pathSegments = {entityType, entityId, relationship, fromType, fromName};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.DELETE, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse disconnect(@NotNull final UsergridEntity entity, @NotNull final String relationship, @NotNull final UsergridEntity from) {
+        String entityUuidOrName = entity.uuidOrName();
+        String fromUuidOrName = from.uuidOrName();
+        if( entityUuidOrName == null || fromUuidOrName == null ) {
+            return UsergridResponse.fromError(this, "Invalid Entity Disconnect Attempt.", "One or both entities that are attempting to be disconnected do not contain a valid UUID or Name property.");
+        }
+        return this.disconnect(entity.getType(), entityUuidOrName, relationship, from.getType(), fromUuidOrName);
+    }
+
+    @NotNull
+    public UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final UsergridEntity entity, @NotNull final String relationship) {
+        return this.getConnections(direction,entity,relationship,null);
+    }
+
+    @NotNull
+    public UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final UsergridEntity entity, @NotNull final String relationship, @Nullable final UsergridQuery query) {
+        String entityUuidOrName = entity.uuidOrName();
+        if( entityUuidOrName == null ) {
+            return UsergridResponse.fromError(this, "Invalid Entity Get Connections Attempt.", "The entity must have a `uuid` or `name` assigned.");
+        }
+        return this.getConnections(direction,entity.getType(),entityUuidOrName,relationship,query);
+    }
+
+    @NotNull
+    public UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final String type, @NotNull final String uuidOrName, @NotNull final String relationship, @Nullable final UsergridQuery query) {
+        String[] pathSegments = {type, uuidOrName, direction.connectionValue(), relationship};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), query, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+
+    @NotNull
+    public UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final String uuid, @NotNull final String relationship, @Nullable final UsergridQuery query) {
+        String[] pathSegments = {uuid, direction.connectionValue(), relationship};
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.clientAppUrl(), query, this.authForRequests() , pathSegments);
+        return this.sendRequest(request);
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridClientConfig.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridClientConfig.java
new file mode 100644
index 0000000..f12f9ec
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridClientConfig.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client;
+
+import org.apache.usergrid.java.client.UsergridEnums.UsergridAuthMode;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class UsergridClientConfig {
+
+    // The organization identifier.
+    @NotNull public String orgId;
+
+    // The application identifier.
+    @NotNull public String appId;
+
+    // The base URL that all calls will be made with.
+    @NotNull public String baseUrl = UsergridClient.DEFAULT_BASE_URL;
+
+    // The `UsergridAuthMode` value used to determine what type of token will be sent, if any.
+    @NotNull public UsergridAuthMode authMode = UsergridAuthMode.USER;
+
+    @Nullable public UsergridAppAuth appAuth = null;
+
+    @SuppressWarnings("unused")
+    private UsergridClientConfig() {}
+
+    public UsergridClientConfig(@NotNull final String orgId, @NotNull final String appId) {
+        this.orgId = orgId;
+        this.appId = appId;
+    }
+
+    public UsergridClientConfig(@NotNull final String orgId, @NotNull final String appId, @NotNull final String baseUrl) {
+        this.orgId = orgId;
+        this.appId = appId;
+        this.baseUrl = baseUrl;
+    }
+
+    public UsergridClientConfig(@NotNull final String orgId, @NotNull final String appId, @NotNull final String baseUrl, @NotNull final UsergridAuthMode authMode) {
+        this.orgId = orgId;
+        this.appId = appId;
+        this.baseUrl = baseUrl;
+        this.authMode = authMode;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridEnums.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridEnums.java
new file mode 100644
index 0000000..4e2a8b0
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridEnums.java
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client;
+
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+@SuppressWarnings("unused")
+public class UsergridEnums {
+    public enum UsergridAuthMode {
+        NONE,
+        USER,
+        APP
+    }
+
+    public enum UsergridDirection {
+        IN("connecting"),
+        OUT("connections");
+
+        @NotNull private final String connectionValue;
+
+        UsergridDirection(@NotNull final String connectionValue) {
+            this.connectionValue = connectionValue;
+        }
+
+        @NotNull
+        public String connectionValue() {
+            return this.connectionValue;
+        }
+    }
+
+    public enum UsergridHttpMethod {
+        GET,
+        PUT,
+        POST,
+        DELETE;
+
+        @Nullable
+        public static UsergridHttpMethod fromString(@NotNull final String stringValue) {
+            try {
+                return UsergridHttpMethod.valueOf(stringValue.toUpperCase());
+            } catch(Exception e) {
+                return null;
+            }
+        }
+
+        @Override @NotNull
+        public String toString() {
+            return super.toString().toUpperCase();
+        }
+    }
+
+    public enum UsergridQueryOperator {
+        EQUAL("="),
+        GREATER_THAN(">"),
+        GREATER_THAN_EQUAL_TO(">="),
+        LESS_THAN("<"),
+        LESS_THAN_EQUAL_TO("<=");
+
+        @NotNull private final String operatorValue;
+
+        UsergridQueryOperator(@NotNull final String operatorValue) {
+            this.operatorValue = operatorValue;
+        }
+
+        @NotNull
+        public String operatorValue() {
+            return this.operatorValue;
+        }
+    }
+
+    public enum UsergridQuerySortOrder {
+        ASC,
+        DESC;
+
+        @Nullable
+        public static UsergridQuerySortOrder fromString(@NotNull final String stringValue) {
+            try {
+                return UsergridQuerySortOrder.valueOf(stringValue.toUpperCase());
+            } catch(Exception e) {
+                return null;
+            }
+        }
+
+        @Override @NotNull
+        public String toString() {
+            return super.toString().toLowerCase();
+        }
+    }
+
+    public enum UsergridEntityProperties {
+        TYPE,
+        UUID,
+        NAME,
+        CREATED,
+        MODIFIED,
+        LOCATION;
+
+        @Nullable
+        public static UsergridEntityProperties fromString(@NotNull final String stringValue) {
+            try {
+                return UsergridEntityProperties.valueOf(stringValue.toUpperCase());
+            } catch(Exception e) {
+                return null;
+            }
+        }
+
+        @Override @NotNull
+        public String toString() {
+            return super.toString().toLowerCase();
+        }
+
+        public boolean isMutableForEntity(@NotNull final UsergridEntity entity) {
+            switch(this) {
+                case LOCATION: {
+                    return true;
+                }
+                case NAME: {
+                    return entity.isUser();
+                }
+                case TYPE:
+                case UUID:
+                case CREATED:
+                case MODIFIED:
+                default: {
+                    return false;
+                }
+            }
+        }
+    }
+
+    public enum UsergridUserProperties {
+        NAME,
+        USERNAME,
+        PASSWORD,
+        EMAIL,
+        ACTIVATED,
+        DISABLED,
+        PICTURE;
+
+        @Nullable
+        public static UsergridUserProperties fromString(@NotNull final String stringValue) {
+            try {
+                return UsergridUserProperties.valueOf(stringValue.toUpperCase());
+            } catch(Exception e) {
+                return null;
+            }
+        }
+
+        @Override @NotNull
+        public String toString() {
+            return super.toString().toLowerCase();
+        }
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java
new file mode 100644
index 0000000..b16783e
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java
@@ -0,0 +1,205 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client;
+
+import okhttp3.HttpUrl;
+import okhttp3.MediaType;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import org.apache.usergrid.java.client.UsergridEnums.UsergridHttpMethod;
+import org.apache.usergrid.java.client.auth.UsergridAuth;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.utils.JsonUtils;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Map;
+
+@SuppressWarnings("unused")
+public class UsergridRequest {
+    @NotNull public static final MediaType APPLICATION_JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");
+
+    @NotNull private UsergridHttpMethod method;
+    @NotNull private String baseUrl;
+    @NotNull private MediaType contentType;
+
+    @Nullable private UsergridQuery query;
+    @Nullable private Map<String, Object> headers;
+    @Nullable private Map<String, Object> parameters;
+    @Nullable private Object data;
+    @Nullable private UsergridAuth auth;
+    @Nullable private String[] pathSegments;
+
+    @NotNull
+    public UsergridHttpMethod getMethod() { return method; }
+    public void setMethod(@NotNull final UsergridHttpMethod method) { this.method = method; }
+
+    @NotNull
+    public String getBaseUrl() { return baseUrl; }
+    public void setBaseUrl(@NotNull final String baseUrl) { this.baseUrl = baseUrl; }
+
+    @NotNull
+    public MediaType getContentType() { return contentType; }
+    public void setContentType(@NotNull final MediaType contentType) { this.contentType = contentType; }
+
+    @Nullable
+    public UsergridQuery getQuery() { return query; }
+    public void setQuery(@Nullable final UsergridQuery query) { this.query = query; }
+
+    @Nullable
+    public Map<String,Object> getHeaders() { return headers; }
+    public void setHeaders(@Nullable final Map<String,Object> headers) { this.headers = headers; }
+
+    @Nullable
+    public Map<String,Object> getParameters() { return parameters; }
+    public void setParameters(@Nullable final Map<String,Object> parameters) { this.parameters = parameters; }
+
+    @Nullable
+    public Object getData() { return data; }
+    public void setData(@Nullable final Object data) { this.data = data; }
+
+    @Nullable
+    public UsergridAuth getAuth() { return auth; }
+    public void setAuth(@Nullable final UsergridAuth auth) { this.auth = auth; }
+
+    @Nullable
+    public String[] getPathSegments() { return pathSegments; }
+    public void setPathSegments(@Nullable final String[] pathSegments) { this.pathSegments = pathSegments; }
+
+    private UsergridRequest() {}
+
+    public UsergridRequest(@NotNull final UsergridHttpMethod method,
+                           @NotNull final MediaType contentType,
+                           @NotNull final String url,
+                           @Nullable final UsergridQuery query,
+                           @Nullable final UsergridAuth auth,
+                           @Nullable final String... pathSegments) {
+        this.method = method;
+        this.contentType = contentType;
+        this.baseUrl = url;
+        this.query = query;
+        this.auth = auth;
+        this.pathSegments = pathSegments;
+    }
+
+    public UsergridRequest(@NotNull final UsergridHttpMethod method,
+                           @NotNull final MediaType contentType,
+                           @NotNull final String url,
+                           @Nullable final UsergridAuth auth,
+                           @Nullable final String... pathSegments) {
+        this.method = method;
+        this.contentType = contentType;
+        this.baseUrl = url;
+        this.auth = auth;
+        this.pathSegments = pathSegments;
+    }
+
+    public UsergridRequest(@NotNull final UsergridHttpMethod method,
+                           @NotNull final MediaType contentType,
+                           @NotNull final String url,
+                           @Nullable final Map<String, Object> params,
+                           @Nullable final Object data,
+                           @Nullable final UsergridAuth auth,
+                           @Nullable final String... pathSegments) {
+        this.method = method;
+        this.contentType = contentType;
+        this.baseUrl = url;
+        this.parameters = params;
+        this.data = data;
+        this.headers = null;
+        this.query = null;
+        this.auth = auth;
+        this.pathSegments = pathSegments;
+    }
+
+    public UsergridRequest(@NotNull final UsergridHttpMethod method,
+                           @NotNull final MediaType contentType,
+                           @NotNull final String url,
+                           @Nullable final Map<String, Object> params,
+                           @Nullable final Object data,
+                           @Nullable final Map<String, Object> headers,
+                           @Nullable final UsergridQuery query,
+                           @Nullable final UsergridAuth auth,
+                           @Nullable final String... pathSegments) {
+        this.method = method;
+        this.contentType = contentType;
+        this.baseUrl = url;
+        this.parameters = params;
+        this.data = data;
+        this.headers = headers;
+        this.query = query;
+        this.auth = auth;
+        this.pathSegments = pathSegments;
+    }
+
+    @NotNull
+    public Request buildRequest() {
+        Request.Builder requestBuilder = new Request.Builder();
+        requestBuilder.url(this.constructUrl());
+        this.addHeaders(requestBuilder);
+        requestBuilder.method(this.method.toString(),this.constructRequestBody());
+        return requestBuilder.build();
+    }
+
+    @NotNull
+    protected HttpUrl constructUrl() {
+        String url = this.baseUrl;
+        if( this.query != null ) {
+            url += this.query.build(false);
+        }
+        HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder();
+        if( this.pathSegments != null ) {
+            for( String path : this.pathSegments ) {
+                urlBuilder.addPathSegments(path);
+            }
+        }
+        if( this.parameters != null ) {
+            for (Map.Entry<String, Object> param : this.parameters.entrySet()) {
+                urlBuilder.addQueryParameter(param.getKey(),param.getValue().toString());
+            }
+        }
+        return urlBuilder.build();
+    }
+
+    protected void addHeaders(@NotNull final Request.Builder requestBuilder) {
+        requestBuilder.addHeader("User-Agent", UsergridRequestManager.USERGRID_USER_AGENT);
+        if (this.auth != null ) {
+            String accessToken = this.auth.getAccessToken();
+            if( accessToken != null ) {
+                requestBuilder.addHeader("Authorization", "Bearer " + accessToken);
+            }
+        }
+        if( this.headers != null ) {
+            for( Map.Entry<String,Object> header : this.headers.entrySet() ) {
+                requestBuilder.addHeader(header.getKey(),header.getValue().toString());
+            }
+        }
+    }
+
+    @Nullable
+    protected RequestBody constructRequestBody() {
+        RequestBody requestBody = null;
+        if (method == UsergridHttpMethod.POST || method == UsergridHttpMethod.PUT) {
+            String jsonString = "";
+            if( this.data != null ) {
+                jsonString = JsonUtils.toJsonString(this.data);
+            }
+            requestBody = RequestBody.create(this.contentType,jsonString);
+        }
+        return requestBody;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java
new file mode 100644
index 0000000..ef771e7
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client;
+
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import org.apache.usergrid.java.client.UsergridEnums.UsergridHttpMethod;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.auth.UsergridAuth;
+import org.apache.usergrid.java.client.model.UsergridUser;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.IOException;
+import java.util.Map;
+
+import static org.apache.usergrid.java.client.utils.ObjectUtils.isEmpty;
+
+public class UsergridRequestManager {
+
+    @NotNull public static String USERGRID_USER_AGENT = "usergrid-java/v" + Usergrid.UsergridSDKVersion;
+
+    @NotNull private final UsergridClient usergridClient;
+    @NotNull private final OkHttpClient httpClient;
+
+    public UsergridRequestManager(@NotNull final UsergridClient usergridClient) {
+        this.usergridClient = usergridClient;
+        this.httpClient = new OkHttpClient();
+    }
+
+    @NotNull
+    public UsergridResponse performRequest(@NotNull final UsergridRequest usergridRequest) {
+        Request request = usergridRequest.buildRequest();
+        UsergridResponse usergridResponse;
+        try {
+            Response response = this.httpClient.newCall(request).execute();
+            usergridResponse = UsergridResponse.fromResponse(this.usergridClient,usergridRequest,response);
+        } catch( IOException exception ) {
+            usergridResponse = UsergridResponse.fromException(this.usergridClient,exception);
+        }
+        return usergridResponse;
+    }
+
+    @NotNull
+    private UsergridResponse authenticate(@NotNull final UsergridAuth auth) {
+        Map<String, String> credentials = auth.credentialsMap();
+        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, this.usergridClient.clientAppUrl(), null, credentials, this.usergridClient.authForRequests(), "token");
+        UsergridResponse response = performRequest(request);
+        if (!isEmpty(response.getAccessToken()) && !isEmpty(response.getExpires())) {
+            auth.setAccessToken(response.getAccessToken());
+            auth.setExpiry(System.currentTimeMillis() + response.getExpires() - 5000);
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse authenticateApp(@NotNull final UsergridAppAuth appAuth) {
+        return this.authenticate(appAuth);
+    }
+
+    @NotNull
+    public UsergridResponse authenticateUser(@NotNull final UsergridUserAuth userAuth) {
+        UsergridResponse response = this.authenticate(userAuth);
+        UsergridUser responseUser = response.user();
+        if ( response.ok() && responseUser != null) {
+            responseUser.setUserAuth(userAuth);
+        }
+        return response;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java
new file mode 100644
index 0000000..a7ac64d
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.auth;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.HashMap;
+
+@SuppressWarnings("unused")
+public class UsergridAppAuth extends UsergridAuth {
+
+    @NotNull private String clientId;
+    @NotNull private String clientSecret;
+
+    @NotNull public String getClientId() { return clientId; }
+    public void setClientId(@NotNull final String clientId) { this.clientId = clientId; }
+
+    @NotNull private String getClientSecret() { return clientSecret; }
+    public void setClientSecret(@NotNull final String clientSecret) { this.clientSecret = clientSecret; }
+
+    @NotNull
+    @Override
+    public HashMap<String, String> credentialsMap() {
+        HashMap<String,String> credentials = super.credentialsMap();
+        credentials.put("grant_type", "client_credentials");
+        credentials.put("client_id", this.clientId);
+        credentials.put("client_secret", this.clientSecret);
+        return credentials;
+    }
+
+    public UsergridAppAuth() {
+        this("","");
+    }
+
+    public UsergridAppAuth(@JsonProperty("clientId") @NotNull final String clientId, @JsonProperty("clientSecret") @NotNull final String clientSecret) {
+        super();
+        this.clientId = clientId;
+        this.clientSecret = clientSecret;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java
new file mode 100644
index 0000000..94b4809
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.auth;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.HashMap;
+
+@SuppressWarnings("unused")
+public class UsergridAuth {
+
+    @Nullable private String accessToken = null;
+    @Nullable private Long expiry = null;
+    private boolean usingToken = false;
+
+    public UsergridAuth() { }
+
+    public UsergridAuth(@JsonProperty("accessToken") @Nullable final String accessToken) {
+        this.usingToken = true;
+        setAccessToken(accessToken);
+    }
+
+    public UsergridAuth(@JsonProperty("accessToken") @Nullable final String accessToken, @JsonProperty("expiry") @Nullable final Long expiry) {
+        this.usingToken = true;
+        setAccessToken(accessToken);
+        setExpiry(expiry);
+    }
+
+    public void destroy() {
+        setAccessToken(null);
+        setExpiry(null);
+    }
+
+    @Nullable public String getAccessToken() { return accessToken; }
+    public void setAccessToken(@Nullable final String accessToken) {
+        this.accessToken = accessToken;
+    }
+
+    @Nullable public Long getExpiry() { return expiry; }
+    public void setExpiry(@Nullable final Long tokenExpiry) { this.expiry = tokenExpiry; }
+
+    public boolean isValidToken() { return (hasToken() && !isExpired()); }
+
+    public boolean hasToken() { return accessToken != null; }
+
+    public boolean isExpired() {
+        if (expiry != null) {
+            Long currentTime = System.currentTimeMillis() / 1000;
+            return ((expiry / 1000) < currentTime);
+        } else {
+            return !this.usingToken;
+        }
+    }
+
+    @NotNull
+    public HashMap<String,String> credentialsMap() {
+        return new HashMap<>();
+    }
+}
\ No newline at end of file
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java
new file mode 100644
index 0000000..e1831c2
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.auth;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.usergrid.java.client.model.UsergridUser;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.HashMap;
+
+@SuppressWarnings("unused")
+public class UsergridUserAuth extends UsergridAuth {
+
+    @NotNull private String username;
+    @NotNull private String password;
+
+    @NotNull public String getUsername() { return username; }
+    public void setUsername(@NotNull final String username) { this.username = username; }
+
+    @NotNull private String getPassword() { return password; }
+    public void setPassword(@NotNull final String password) { this.password = password; }
+
+    @NotNull
+    @Override
+    public HashMap<String, String> credentialsMap() {
+        HashMap<String,String> credentials = super.credentialsMap();
+        credentials.put("grant_type", "password");
+        credentials.put("username", this.username);
+        credentials.put("password", this.password);
+        return credentials;
+    }
+
+    public UsergridUserAuth() {
+        this("","");
+    }
+
+    public UsergridUserAuth(@JsonProperty("username") @NotNull final String username, @JsonProperty("password") @NotNull final String password) {
+        super();
+        this.username = username;
+        this.password = password;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Activity.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Activity.java
deleted file mode 100644
index faff3c3..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Activity.java
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.entities;
-
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.UUID;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
-
-/**
- * An entity type for representing activity stream actions. These are similar to
- * the more generic message entity type except provide the necessary properties
- * for supporting activity stream implementations.
- *
- * @see http://activitystrea.ms/specs/json/1.0/
- */
-public class Activity extends Entity {
-
-    public static final String ENTITY_TYPE = "activity";
-
-    public static final String PROP_ACTOR = "actor";
-
-    public static final String VERB_ADD = "add";
-    public static final String VERB_CANCEL = "cancel";
-    public static final String VERB_CHECKIN = "checkin";
-    public static final String VERB_DELETE = "delete";
-    public static final String VERB_FAVORITE = "favorite";
-    public static final String VERB_FOLLOW = "follow";
-    public static final String VERB_GIVE = "give";
-    public static final String VERB_IGNORE = "ignore";
-    public static final String VERB_INVITE = "invite";
-    public static final String VERB_JOIN = "join";
-    public static final String VERB_LEAVE = "leave";
-    public static final String VERB_LIKE = "like";
-    public static final String VERB_MAKE_FRIEND = "make-friend";
-    public static final String VERB_PLAY = "play";
-    public static final String VERB_POST = "post";
-    public static final String VERB_RECEIVE = "receive";
-    public static final String VERB_REMOVE = "remove";
-    public static final String VERB_REMOVE_FRIEND = "remove-friend";
-    public static final String VERB_REQUEST_FRIEND = "request-friend";
-    public static final String VERB_RSVP_MAYBE = "rsvp-maybe";
-    public static final String VERB_RSVP_NO = "rsvp-no";
-    public static final String VERB_RSVP_YES = "rsvp-yes";
-    public static final String VERB_SAVE = "save";
-    public static final String VERB_SHARE = "share";
-    public static final String VERB_STOP_FOLLOWING = "stop-following";
-    public static final String VERB_TAG = "tag";
-    public static final String VERB_UNFAVORITE = "unfavorite";
-    public static final String VERB_UNLIKE = "unlike";
-    public static final String VERB_UNSAVE = "unsave";
-    public static final String VERB_UPDATE = "update";
-
-    public static final String OBJECT_TYPE_ARTICLE = "article";
-    public static final String OBJECT_TYPE_AUDIO = "audio";
-    public static final String OBJECT_TYPE_BADGE = "badge";
-    public static final String OBJECT_TYPE_BOOKMARK = "bookmark";
-    public static final String OBJECT_TYPE_COLLECTION = "collection";
-    public static final String OBJECT_TYPE_COMMENT = "comment";
-    public static final String OBJECT_TYPE_EVENT = "event";
-    public static final String OBJECT_TYPE_FILE = "file";
-    public static final String OBJECT_TYPE_GROUP = "group";
-    public static final String OBJECT_TYPE_IMAGE = "image";
-    public static final String OBJECT_TYPE_NOTE = "note";
-    public static final String OBJECT_TYPE_PERSON = "person";
-    public static final String OBJECT_TYPE_PLACE = "place";
-    public static final String OBJECT_TYPE_PRODUCT = "product";
-    public static final String OBJECT_TYPE_QUESTION = "question";
-    public static final String OBJECT_TYPE_REVIEW = "review";
-    public static final String OBJECT_TYPE_SERVICE = "service";
-    public static final String OBJECT_TYPE_VIDEO = "video";
-
-    protected ActivityObject actor;
-
-    protected String content;
-
-    protected ActivityObject generator;
-
-    protected MediaLink icon;
-
-    protected String category;
-
-    protected String verb;
-
-    protected Long published;
-
-    protected ActivityObject object;
-
-    // protected
-    // String objectType;
-
-    // protected
-    // String objectEntityType;
-
-    // protected
-    // String objectName;
-
-    protected String title;
-
-    protected Set<String> connections;
-
-    public Activity() {
-        setType("activity");
-    }
-
-    public Activity(UUID id) {
-        this();
-        setUuid(id);
-    }
-
-    public static Activity newActivity(String verb, String title,
-            String content, String category, Entity user, Entity object,
-            String objectType, String objectName, String objectContent){
-
-        Activity activity = new Activity();
-        activity.setVerb(verb);
-        activity.setCategory(category);
-        activity.setContent(content);
-        activity.setTitle(title);
-
-        ActivityObject actor = new ActivityObject();
-        actor.setObjectType("person");
-
-        if (user != null) {
-            actor.setDisplayName(getStringProperty(user.properties, "name"));
-            actor.setEntityType(user.getType());
-            actor.setUuid(user.getUuid());
-        }
-
-        activity.setActor(actor);
-
-        ActivityObject obj = new ActivityObject();
-        obj.setDisplayName(objectName);
-        obj.setObjectType(objectType);
-        if (object != null) {
-            obj.setEntityType(object.getType());
-            obj.setUuid(object.getUuid());
-        }
-        if (objectContent != null) {
-            obj.setContent(objectContent);
-        } else {
-            obj.setContent(content);
-        }
-        activity.setObject(obj);
-
-        return activity;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public ActivityObject getActor() {
-        return actor;
-    }
-
-    public void setActor(ActivityObject actor) {
-        this.actor = actor;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public ActivityObject getGenerator() {
-        return generator;
-    }
-
-    public void setGenerator(ActivityObject generator) {
-        this.generator = generator;
-    }
-
-    /*
-     * @JsonSerialize(include = Inclusion.NON_NULL) public String getActorName()
-     * { return actorName; }
-     *
-     * public void setActorName(String actorName) { this.actorName = actorName;
-     * }
-     */
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public String getCategory() {
-        return category;
-    }
-
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public String getVerb() {
-        return verb;
-    }
-
-    public void setVerb(String verb) {
-        this.verb = verb;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public Long getPublished() {
-        return published;
-    }
-
-    public void setPublished(Long published) {
-        this.published = published;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public ActivityObject getObject() {
-        return object;
-    }
-
-    public void setObject(ActivityObject object) {
-        this.object = object;
-    }
-
-    /*
-     * @JsonSerialize(include = Inclusion.NON_NULL) public String
-     * getObjectType() { return objectType; }
-     *
-     * public void setObjectType(String objectType) { this.objectType =
-     * objectType; }
-     *
-     * @JsonSerialize(include = Inclusion.NON_NULL) public String
-     * getObjectEntityType() { return objectEntityType; }
-     *
-     * public void setObjectEntityType(String objectEntityType) {
-     * this.objectEntityType = objectEntityType; }
-     *
-     * @JsonSerialize(include = Inclusion.NON_NULL) public String
-     * getObjectName() { return objectName; }
-     *
-     * public void setObjectName(String objectName) { this.objectName =
-     * objectName; }
-     */
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public MediaLink getIcon() {
-        return icon;
-    }
-
-    public void setIcon(MediaLink icon) {
-        this.icon = icon;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public String getContent() {
-        return content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
-
-    @JsonSerialize(include = Inclusion.NON_NULL)
-    public Set<String> getConnections() {
-        return connections;
-    }
-
-    public void setConnections(Set<String> connections) {
-        this.connections = connections;
-    }
-
-    @XmlRootElement
-    static public class MediaLink {
-
-        int duration;
-
-        int height;
-
-        String url;
-
-        int width;
-
-        protected Map<String, Object> dynamic_properties = new TreeMap<String, Object>(
-                String.CASE_INSENSITIVE_ORDER);
-
-        public MediaLink() {
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public int getDuration() {
-            return duration;
-        }
-
-        public void setDuration(int duration) {
-            this.duration = duration;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public int getHeight() {
-            return height;
-        }
-
-        public void setHeight(int height) {
-            this.height = height;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getUrl() {
-            return url;
-        }
-
-        public void setUrl(String url) {
-            this.url = url;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public int getWidth() {
-            return width;
-        }
-
-        public void setWidth(int width) {
-            this.width = width;
-        }
-
-        @JsonAnySetter
-        public void setDynamicProperty(String key, Object value) {
-            dynamic_properties.put(key, value);
-        }
-
-        @JsonAnyGetter
-        public Map<String, Object> getDynamicProperties() {
-            return dynamic_properties;
-        }
-
-        @Override
-        public String toString() {
-            return "MediaLink [duration=" + duration + ", height=" + height
-                    + ", url=" + url + ", width=" + width
-                    + ", dynamic_properties=" + dynamic_properties + "]";
-        }
-
-    }
-
-    @XmlRootElement
-    static public class ActivityObject {
-
-        ActivityObject[] attachments;
-
-        ActivityObject author;
-
-        String content;
-
-        String displayName;
-
-        String[] downstreamDuplicates;
-
-        String id;
-
-        MediaLink image;
-
-        String objectType;
-
-        Date published;
-
-        String summary;
-
-        String updated;
-
-        String upstreamDuplicates;
-
-        String url;
-
-        UUID uuid;
-
-        String entityType;
-
-        protected Map<String, Object> dynamic_properties = new TreeMap<String, Object>(
-                String.CASE_INSENSITIVE_ORDER);
-
-        public ActivityObject() {
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public ActivityObject[] getAttachments() {
-            return attachments;
-        }
-
-        public void setAttachments(ActivityObject[] attachments) {
-            this.attachments = attachments;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public ActivityObject getAuthor() {
-            return author;
-        }
-
-        public void setAuthor(ActivityObject author) {
-            this.author = author;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getContent() {
-            return content;
-        }
-
-        public void setContent(String content) {
-            this.content = content;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getDisplayName() {
-            return displayName;
-        }
-
-        public void setDisplayName(String displayName) {
-            this.displayName = displayName;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String[] getDownstreamDuplicates() {
-            return downstreamDuplicates;
-        }
-
-        public void setDownstreamDuplicates(String[] downstreamDuplicates) {
-            this.downstreamDuplicates = downstreamDuplicates;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getId() {
-            return id;
-        }
-
-        public void setId(String id) {
-            this.id = id;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public MediaLink getImage() {
-            return image;
-        }
-
-        public void setImage(MediaLink image) {
-            this.image = image;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getObjectType() {
-            return objectType;
-        }
-
-        public void setObjectType(String objectType) {
-            this.objectType = objectType;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public Date getPublished() {
-            return published;
-        }
-
-        public void setPublished(Date published) {
-            this.published = published;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getSummary() {
-            return summary;
-        }
-
-        public void setSummary(String summary) {
-            this.summary = summary;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getUpdated() {
-            return updated;
-        }
-
-        public void setUpdated(String updated) {
-            this.updated = updated;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getUpstreamDuplicates() {
-            return upstreamDuplicates;
-        }
-
-        public void setUpstreamDuplicates(String upstreamDuplicates) {
-            this.upstreamDuplicates = upstreamDuplicates;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getUrl() {
-            return url;
-        }
-
-        public void setUrl(String url) {
-            this.url = url;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public UUID getUuid() {
-            return uuid;
-        }
-
-        public void setUuid(UUID uuid) {
-            this.uuid = uuid;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getEntityType() {
-            return entityType;
-        }
-
-        public void setEntityType(String entityType) {
-            this.entityType = entityType;
-        }
-
-        @JsonAnySetter
-        public void setDynamicProperty(String key, Object value) {
-            dynamic_properties.put(key, value);
-        }
-
-        @JsonAnyGetter
-        public Map<String, Object> getDynamicProperties() {
-            return dynamic_properties;
-        }
-
-        @Override
-        public String toString() {
-            return "ActivityObject [attachments="
-                    + Arrays.toString(attachments) + ", author=" + author
-                    + ", content=" + content + ", displayName=" + displayName
-                    + ", downstreamDuplicates="
-                    + Arrays.toString(downstreamDuplicates) + ", id=" + id
-                    + ", image=" + image + ", objectType=" + objectType
-                    + ", published=" + published + ", summary=" + summary
-                    + ", updated=" + updated + ", upstreamDuplicates="
-                    + upstreamDuplicates + ", url=" + url + ", uuid=" + uuid
-                    + ", entityType=" + entityType + ", dynamic_properties="
-                    + dynamic_properties + "]";
-        }
-
-    }
-
-    @XmlRootElement
-    static public class ActivityCollection {
-
-        int totalItems;
-
-        ActivityObject[] items;
-
-        String url;
-
-        protected Map<String, Object> dynamic_properties = new TreeMap<String, Object>(
-                String.CASE_INSENSITIVE_ORDER);
-
-        public ActivityCollection() {
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public int getTotalItems() {
-            return totalItems;
-        }
-
-        public void setTotalItems(int totalItems) {
-            this.totalItems = totalItems;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public ActivityObject[] getItems() {
-            return items;
-        }
-
-        public void setItems(ActivityObject[] items) {
-            this.items = items;
-        }
-
-        @JsonSerialize(include = Inclusion.NON_NULL)
-        public String getUrl() {
-            return url;
-        }
-
-        public void setUrl(String url) {
-            this.url = url;
-        }
-
-        @JsonAnySetter
-        public void setDynamicProperty(String key, Object value) {
-            dynamic_properties.put(key, value);
-        }
-
-        @JsonAnyGetter
-        public Map<String, Object> getDynamicProperties() {
-            return dynamic_properties;
-        }
-
-        @Override
-        public String toString() {
-            return "ActivityCollection [totalItems=" + totalItems + ", items="
-                    + Arrays.toString(items) + ", url=" + url
-                    + ", dynamic_properties=" + dynamic_properties + "]";
-        }
-
-    }
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Device.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Device.java
deleted file mode 100644
index 8db415c..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Device.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.entities;
-
-import static com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion.NON_NULL;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setStringProperty;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-
-public class Device extends Entity {
-
-	public final static String ENTITY_TYPE = "device";
-
-	public final static String PROPERTY_NAME = "name";
-
-	public Device() {
-		super();
-		setType(ENTITY_TYPE);
-	}
-
-	public Device(Entity entity) {
-		super();
-		properties = entity.properties;
-		setType(ENTITY_TYPE);
-	}
-
-	@Override
-	@JsonIgnore
-	public String getNativeType() {
-		return ENTITY_TYPE;
-	}
-
-	@Override
-	@JsonIgnore
-	public List<String> getPropertyNames() {
-		List<String> properties = super.getPropertyNames();
-		properties.add(PROPERTY_NAME);
-		return properties;
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getName() {
-		return getStringProperty(properties, PROPERTY_NAME);
-	}
-
-	public void setName(String name) {
-		setStringProperty(properties, PROPERTY_NAME, name);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Entity.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Entity.java
deleted file mode 100644
index 2a8c544..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Entity.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.entities;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getUUIDProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.*;
-import static org.apache.usergrid.java.client.utils.MapUtils.newMapWithoutKeys;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
-public class Entity {
-
-    public final static String PROPERTY_UUID = "uuid";
-    public final static String PROPERTY_TYPE = "type";
-
-    protected Map<String, JsonNode> properties = new HashMap<String, JsonNode>();
-
-    public static Map<String, Class<? extends Entity>> CLASS_FOR_ENTITY_TYPE = new HashMap<String, Class<? extends Entity>>();
-    static {
-        CLASS_FOR_ENTITY_TYPE.put(User.ENTITY_TYPE, User.class);
-    }
-
-    public Entity() {
-    }
-
-    public Entity(String type) {
-        setType(type);
-    }
-
-    @JsonIgnore
-    public String getNativeType() {
-        return getType();
-    }
-
-    @JsonIgnore
-    public List<String> getPropertyNames() {
-        List<String> properties = new ArrayList<String>();
-        properties.add(PROPERTY_TYPE);
-        properties.add(PROPERTY_UUID);
-        return properties;
-    }
-
-    public String getType() {
-        return getStringProperty(properties, PROPERTY_TYPE);
-    }
-
-    public void setType(String type) {
-        setStringProperty(properties, PROPERTY_TYPE, type);
-    }
-
-    public UUID getUuid() {
-        return getUUIDProperty(properties, PROPERTY_UUID);
-    }
-
-    public void setUuid(UUID uuid) {
-        setUUIDProperty(properties, PROPERTY_UUID, uuid);
-    }
-
-    @JsonAnyGetter
-    public Map<String, JsonNode> getProperties() {
-        return newMapWithoutKeys(properties, getPropertyNames());
-    }
-
-    @JsonAnySetter
-    public void setProperty(String name, JsonNode value) {
-        if (value == null) {
-            properties.remove(name);
-        } else {
-            properties.put(name, value);
-        }
-    }
-
-
-    /**
-     * Set the property
-     *
-     * @param name
-     * @param value
-     */
-    public void setProperty(String name, String value) {
-        setStringProperty(properties, name, value);
-    }
-
-    /**
-     * Set the property
-     *
-     * @param name
-     * @param value
-     */
-    public void setProperty(String name, boolean value) {
-        setBooleanProperty(properties, name, value);
-    }
-
-    /**
-     * Set the property
-     *
-     * @param name
-     * @param value
-     */
-    public void setProperty(String name, long value) {
-        setLongProperty(properties, name, value);
-    }
-
-    /**
-     * Set the property
-     *
-     * @param name
-     * @param value
-     */
-    public void setProperty(String name, int value) {
-        setProperty(name, (long) value);
-    }
-
-    /**
-     * Set the property
-     *
-     * @param name
-     * @param value
-     */
-    public void setProperty(String name, float value) {
-        setFloatProperty(properties, name, value);
-    }
-
-    @Override
-    public String toString() {
-        return toJsonString(this);
-    }
-
-    public <T extends Entity> T toType(Class<T> t) {
-        return toType(this, t);
-    }
-
-    public static <T extends Entity> T toType(Entity entity, Class<T> t) {
-        if (entity == null) {
-            return null;
-        }
-        T newEntity = null;
-        if (entity.getClass().isAssignableFrom(t)) {
-            try {
-                newEntity = (t.newInstance());
-                if ((newEntity.getNativeType() != null)
-                        && newEntity.getNativeType().equals(entity.getType())) {
-                    newEntity.properties = entity.properties;
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return newEntity;
-    }
-
-    public static <T extends Entity> List<T> toType(List<Entity> entities,
-            Class<T> t) {
-        List<T> l = new ArrayList<T>(entities != null ? entities.size() : 0);
-        if (entities != null) {
-            for (Entity entity : entities) {
-                T newEntity = entity.toType(t);
-                if (newEntity != null) {
-                    l.add(newEntity);
-                }
-            }
-        }
-        return l;
-    }
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Group.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Group.java
deleted file mode 100644
index 0e80532..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Group.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.entities;
-
-import static com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion.NON_NULL;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setStringProperty;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-
-public class Group extends Entity {
-
-	public final static String ENTITY_TYPE = "group";
-
-	public final static String PROPERTY_PATH = "path";
-	public final static String PROPERTY_TITLE = "title";
-
-	public Group() {
-		super();
-		setType(ENTITY_TYPE);
-	}
-
-	public Group(Entity entity) {
-		super();
-		properties = entity.properties;
-		setType(ENTITY_TYPE);
-	}
-
-	@Override
-	@JsonIgnore
-	public String getNativeType() {
-		return ENTITY_TYPE;
-	}
-
-	@Override
-	@JsonIgnore
-	public List<String> getPropertyNames() {
-		List<String> properties = super.getPropertyNames();
-		properties.add(PROPERTY_PATH);
-		properties.add(PROPERTY_TITLE);
-		return properties;
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getPath() {
-		return getStringProperty(properties, PROPERTY_PATH);
-	}
-
-	public void setPath(String path) {
-		setStringProperty(properties, PROPERTY_PATH, path);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getTitle() {
-		return getStringProperty(properties, PROPERTY_TITLE);
-	}
-
-	public void setTitle(String title) {
-		setStringProperty(properties, PROPERTY_TITLE, title);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Message.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Message.java
deleted file mode 100644
index 8af64f9..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/Message.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.entities;
-
-import static com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion.NON_NULL;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getBooleanProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getLongProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getUUIDProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setBooleanProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setLongProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setUUIDProperty;
-
-import java.util.List;
-import java.util.UUID;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
-
-public class Message extends Entity {
-
-	public static final String ENTITY_TYPE = "message";
-
-	public static final String PROPERTY_CORRELATION_ID = "correlation_id";
-	public static final String PROPERTY_DESTINATION = "destination";
-	public static final String PROPERTY_REPLY_TO = "reply_to";
-	public static final String PROPERTY_TIMESTAMP = "timestamp";
-	public static final String PROPERTY_TYPE = "type";
-	public static final String PROPERTY_CATEGORY = "category";
-	public static final String PROPERTY_INDEXED = "indexed";
-	public static final String PROPERTY_PERSISTENT = "persistent";
-
-	public Message() {
-		super();
-		setType(ENTITY_TYPE);
-	}
-
-	public Message(Entity entity) {
-		super();
-		properties = entity.properties;
-		setType(ENTITY_TYPE);
-	}
-
-	@Override
-	@JsonIgnore
-	public String getNativeType() {
-		return ENTITY_TYPE;
-	}
-
-	@Override
-	@JsonIgnore
-	public List<String> getPropertyNames() {
-		List<String> properties = super.getPropertyNames();
-		properties.add(PROPERTY_CORRELATION_ID);
-		properties.add(PROPERTY_DESTINATION);
-		properties.add(PROPERTY_REPLY_TO);
-		properties.add(PROPERTY_TIMESTAMP);
-		properties.add(PROPERTY_CATEGORY);
-		properties.add(PROPERTY_INDEXED);
-		properties.add(PROPERTY_PERSISTENT);
-		return properties;
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	@JsonProperty(PROPERTY_CORRELATION_ID)
-	public UUID getCorrelationId() {
-		return getUUIDProperty(properties, PROPERTY_CORRELATION_ID);
-	}
-
-	@JsonProperty(PROPERTY_CORRELATION_ID)
-	public void setCorrelationId(UUID uuid) {
-		setUUIDProperty(properties, PROPERTY_CORRELATION_ID, uuid);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getDestination() {
-		return getStringProperty(properties, PROPERTY_DESTINATION);
-	}
-
-	public void setDestination(String destination) {
-		setStringProperty(properties, PROPERTY_DESTINATION, destination);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	@JsonProperty(PROPERTY_REPLY_TO)
-	public String getReplyTo() {
-		return getStringProperty(properties, PROPERTY_DESTINATION);
-	}
-
-	@JsonProperty(PROPERTY_REPLY_TO)
-	public void setReplyTo(String replyTo) {
-		setStringProperty(properties, PROPERTY_DESTINATION, replyTo);
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public Long getTimestamp() {
-		return getLongProperty(properties, PROPERTY_TIMESTAMP);
-	}
-
-	public void setTimestamp(Long timestamp) {
-		setLongProperty(properties, PROPERTY_TIMESTAMP, timestamp);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getCategory() {
-		return getStringProperty(properties, PROPERTY_CATEGORY);
-	}
-
-	public void setCategory(String category) {
-		setStringProperty(properties, PROPERTY_CATEGORY, category);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public Boolean isIndexed() {
-		return getBooleanProperty(properties, PROPERTY_INDEXED);
-	}
-
-	public void setIndexed(Boolean indexed) {
-		setBooleanProperty(properties, PROPERTY_INDEXED, indexed);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public Boolean isPersistent() {
-		return getBooleanProperty(properties, PROPERTY_INDEXED);
-	}
-
-	public void setPersistent(Boolean persistent) {
-		setBooleanProperty(properties, PROPERTY_INDEXED, persistent);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/User.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/User.java
deleted file mode 100644
index 0046ab2..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/entities/User.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.entities;
-
-import static com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion.NON_NULL;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getBooleanProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setBooleanProperty;
-import static org.apache.usergrid.java.client.utils.JsonUtils.setStringProperty;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-
-public class User extends Entity {
-
-	public final static String ENTITY_TYPE = "user";
-
-	public final static String PROPERTY_USERNAME = "username";
-	public final static String PROPERTY_EMAIL = "email";
-	public final static String PROPERTY_NAME = "name";
-	public final static String PROPERTY_FIRSTNAME = "firstname";
-	public final static String PROPERTY_MIDDLENAME = "middlename";
-	public final static String PROPERTY_LASTNAME = "lastname";
-	public final static String PROPERTY_ACTIVATED = "activated";
-	public final static String PROPERTY_PICTURE = "picture";
-	public final static String PROPERTY_DISABLED = "disabled";
-
-	public User() {
-		super();
-		setType(ENTITY_TYPE);
-	}
-
-	public User(Entity entity) {
-		super();
-		properties = entity.properties;
-		setType(ENTITY_TYPE);
-	}
-
-	@Override
-	@JsonIgnore
-	public String getNativeType() {
-		return ENTITY_TYPE;
-	}
-
-	@Override
-	@JsonIgnore
-	public List<String> getPropertyNames() {
-		List<String> properties = super.getPropertyNames();
-		properties.add(PROPERTY_USERNAME);
-		properties.add(PROPERTY_EMAIL);
-		properties.add(PROPERTY_NAME);
-		properties.add(PROPERTY_FIRSTNAME);
-		properties.add(PROPERTY_MIDDLENAME);
-		properties.add(PROPERTY_LASTNAME);
-		properties.add(PROPERTY_ACTIVATED);
-		properties.add(PROPERTY_PICTURE);
-		properties.add(PROPERTY_DISABLED);
-		return properties;
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getUsername() {
-		return getStringProperty(properties, PROPERTY_USERNAME);
-	}
-
-	public void setUsername(String username) {
-		setStringProperty(properties, PROPERTY_USERNAME, username);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getName() {
-		return getStringProperty(properties, PROPERTY_NAME);
-	}
-
-	public void setName(String name) {
-		setStringProperty(properties, PROPERTY_NAME, name);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getEmail() {
-		return getStringProperty(properties, PROPERTY_EMAIL);
-	}
-
-	public void setEmail(String email) {
-		setStringProperty(properties, PROPERTY_EMAIL, email);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public Boolean isActivated() {
-		return getBooleanProperty(properties, PROPERTY_ACTIVATED);
-	}
-
-	public void setActivated(Boolean activated) {
-		setBooleanProperty(properties, PROPERTY_ACTIVATED, activated);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public Boolean isDisabled() {
-		return getBooleanProperty(properties, PROPERTY_DISABLED);
-	}
-
-	public void setDisabled(Boolean disabled) {
-		setBooleanProperty(properties, PROPERTY_DISABLED, disabled);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getFirstname() {
-		return getStringProperty(properties, PROPERTY_FIRSTNAME);
-	}
-
-	public void setFirstname(String firstname) {
-		setStringProperty(properties, PROPERTY_FIRSTNAME, firstname);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getMiddlename() {
-		return getStringProperty(properties, PROPERTY_MIDDLENAME);
-	}
-
-	public void setMiddlename(String middlename) {
-		setStringProperty(properties, PROPERTY_MIDDLENAME, middlename);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getLastname() {
-		return getStringProperty(properties, PROPERTY_LASTNAME);
-	}
-
-	public void setLastname(String lastname) {
-		setStringProperty(properties, PROPERTY_LASTNAME, lastname);
-	}
-
-	@JsonSerialize(include = NON_NULL)
-	public String getPicture() {
-		return getStringProperty(properties, PROPERTY_PICTURE);
-	}
-
-	public void setPicture(String picture) {
-		setStringProperty(properties, PROPERTY_PICTURE, picture);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/ClientException.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/ClientException.java
deleted file mode 100644
index 24f27e2..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/ClientException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.exception;
-
-/**
- * Simple wrapper for client exceptions
- * @author tnine
- *
- */
-public class ClientException extends RuntimeException{
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * @param message
-     * @param cause
-     */
-    public ClientException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java
new file mode 100644
index 0000000..ff30a0d
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.exception;
+
+import org.jetbrains.annotations.NotNull;
+
+@SuppressWarnings("unused")
+public class UsergridException extends RuntimeException {
+
+    private int responseCode;
+
+    public int getResponseCode() {
+        return responseCode;
+    }
+    public void setResponseCode(final int responseCode) { this.responseCode = responseCode; }
+
+    private UsergridException() {}
+
+    public UsergridException(@NotNull final String message) {
+        super(message);
+    }
+
+    public UsergridException(@NotNull final String message, @NotNull final Throwable cause) {
+        super(message, cause);
+    }
+
+    public UsergridException(@NotNull final String message, final int responseCode) {
+        super(message);
+        this.responseCode = responseCode;
+    }
+
+    public UsergridException(@NotNull final String message, @NotNull final Throwable cause, final int responseCode) {
+        super(message, cause);
+        this.responseCode = responseCode;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java
new file mode 100644
index 0000000..1833afb
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java
@@ -0,0 +1,60 @@
+package org.apache.usergrid.java.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Map;
+
+@SuppressWarnings("unused")
+public class UsergridDevice extends UsergridEntity {
+    @NotNull public static String DEVICE_ENTITY_TYPE = "device";
+
+    @Nullable private String model;
+    @Nullable private String platform;
+    @Nullable private String osVersion;
+
+    public UsergridDevice() {
+        super(DEVICE_ENTITY_TYPE);
+    }
+
+    public UsergridDevice(@Nullable final String name) {
+        super(DEVICE_ENTITY_TYPE,name);
+    }
+
+    public UsergridDevice(@NotNull final Map<String, JsonNode> properties) {
+        super(DEVICE_ENTITY_TYPE,null,properties);
+    }
+
+    public UsergridDevice(@Nullable final String name, @NotNull final Map<String, JsonNode> properties) {
+        super(DEVICE_ENTITY_TYPE,name,properties);
+    }
+
+    @Nullable @JsonProperty("deviceModel")
+    public String getModel() {
+        return this.model;
+    }
+    @JsonProperty("deviceModel")
+    public void setModel(@Nullable final String model) {
+        this.model = model;
+    }
+
+    @Nullable @JsonProperty("devicePlatform")
+    public String getPlatform() {
+        return this.platform;
+    }
+    @JsonProperty("devicePlatform")
+    public void setPlatform(@Nullable final String platform) {
+        this.platform = platform;
+    }
+
+    @Nullable @JsonProperty("deviceOSVersion")
+    public String getOsVersion() {
+        return this.osVersion;
+    }
+    @JsonProperty("deviceOSVersion")
+    public void setOsVersion(@Nullable final String osVersion) {
+        this.osVersion = osVersion;
+    }
+}
\ No newline at end of file
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java
new file mode 100644
index 0000000..e3dbb77
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java
@@ -0,0 +1,487 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.model;
+
+import com.fasterxml.jackson.annotation.*;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectReader;
+import com.fasterxml.jackson.databind.node.*;
+import org.apache.usergrid.java.client.UsergridEnums.*;
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.UsergridClient;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.apache.usergrid.java.client.utils.JsonUtils;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.io.IOException;
+import java.util.*;
+
+import static org.apache.usergrid.java.client.utils.JsonUtils.*;
+
+@SuppressWarnings("unused")
+public class UsergridEntity {
+
+    @NotNull private static final HashMap<String,Class<? extends UsergridEntity>> subclassMappings = new HashMap<>();
+    @NotNull private static final ObjectMapper entityUpdateMapper = new ObjectMapper();
+    @NotNull private final ObjectReader entityUpdateReader = entityUpdateMapper.readerForUpdating(this);
+
+    static {
+        subclassMappings.put("user",UsergridUser.class);
+        subclassMappings.put("device",UsergridDevice.class);
+    }
+
+    @NotNull private String type;
+    @Nullable private String uuid;
+    @Nullable private String name;
+    @Nullable private Long created;
+    @Nullable private Long modified;
+
+    @NotNull private Map<String, JsonNode> properties = new HashMap<>();
+
+    public UsergridEntity(@JsonProperty("type") @NotNull final String type) {
+        this.type = type;
+    }
+
+    public UsergridEntity(@NotNull final String type, @Nullable final String name) {
+        this(type);
+        if( name != null ) {
+            this.name = name;
+        }
+    }
+
+    public UsergridEntity(@NotNull final String type, @Nullable final String name, @NotNull final Map<String, ?> properties) {
+        this(type,name);
+        this.updatePropertiesWithMap(properties);
+    }
+
+    @Nullable
+    public static Class<? extends UsergridEntity> customSubclassForType(@NotNull final String type) {
+        return UsergridEntity.subclassMappings.get(type);
+    }
+
+    public void copyAllProperties(@NotNull final UsergridEntity fromEntity) {
+        try {
+            this.updatePropertiesWithJsonNode(entityUpdateMapper.valueToTree(fromEntity));
+        } catch( IllegalArgumentException e ) { System.out.print("Usergrid Error: Unable to update properties from entity - " + fromEntity.toString()); }
+    }
+
+    public void updatePropertiesWithMap(@NotNull final Map<String,?> properties) {
+        try {
+            this.updatePropertiesWithJsonNode(entityUpdateMapper.valueToTree(properties));
+        } catch( IllegalArgumentException e ) { System.out.print("Usergrid Error: Unable to update properties from map - " + properties.toString()); }
+    }
+
+    public void updatePropertiesWithJsonNode(@NotNull final JsonNode node) {
+        try {
+            entityUpdateReader.readValue(node);
+        } catch( IOException e ) { System.out.print("Usergrid Error: Unable to update properties from jsonNode - " + node.toString()); }
+    }
+
+    public static void mapCustomSubclassToType(@NotNull final String type, @NotNull final Class<? extends UsergridEntity> subclass) {
+        UsergridEntity.subclassMappings.put(type,subclass);
+    }
+
+    @NotNull @Override public String toString() {
+        return toJsonString(this);
+    }
+    @NotNull public String toPrettyString() { return toPrettyJsonString(this); }
+    @NotNull public JsonNode toJsonObjectValue() {
+        return toJsonNode(this);
+    }
+    @SuppressWarnings("unchecked")
+    @NotNull public Map<String,?> toMapValue() { return toMap(this); }
+
+    @JsonIgnore
+    public boolean isUser() { return (this instanceof UsergridUser || this.getType().equalsIgnoreCase(UsergridUser.USER_ENTITY_TYPE)); }
+
+    @NotNull public String getType() { return this.type; }
+    private void setType(@NotNull final String type) { this.type = type; }
+
+    @Nullable public String getUuid() { return this.uuid; }
+    private void setUuid(@NotNull final String uuid) { this.uuid = uuid; }
+
+    @Nullable public String getName() { return this.name; }
+    protected void setName(@Nullable final String name) { this.name = name; }
+
+    @Nullable public Long getCreated() { return this.created; }
+    private void setCreated(@NotNull final Long created) { this.created = created; }
+
+    @Nullable public Long getModified() { return this.modified; }
+    private void setModified(@NotNull final Long modified) { this.modified = modified; }
+
+    public void setLocation(final double latitude, final double longitude) {
+        ObjectNode rootNode = JsonUtils.createObjectNode();
+        rootNode.put("latitude", latitude);
+        rootNode.put("longitude", longitude);
+        setObjectProperty(this.properties, "location", rootNode);
+    }
+
+    @Nullable
+    public String uuidOrName() {
+        String uuidOrName = this.getUuid();
+        if( uuidOrName == null ) {
+            uuidOrName = this.getName();
+        }
+        return uuidOrName;
+    }
+
+    @NotNull
+    public UsergridResponse reload() {
+        return this.reload(Usergrid.getInstance());
+    }
+
+    @NotNull
+    public UsergridResponse reload(@NotNull final UsergridClient client) {
+        String uuidOrName = this.uuidOrName();
+        if( uuidOrName == null ) {
+            return UsergridResponse.fromError(client,  "No UUID or name found.", "The entity object must have a `uuid` or `name` assigned.");
+        }
+        UsergridResponse response = client.GET(this.getType(), uuidOrName);
+        if( response.ok() ) {
+            UsergridEntity responseEntity = response.first();
+            if( responseEntity != null ) {
+                this.copyAllProperties(responseEntity);
+            }
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse save() {
+        return this.save(Usergrid.getInstance());
+    }
+
+    @NotNull
+    public UsergridResponse save(@NotNull final UsergridClient client) {
+        UsergridResponse response;
+        if( this.getUuid() != null ) {
+            response = client.PUT(this);
+        } else {
+            response = client.POST(this);
+        }
+        if( response.ok() ) {
+            UsergridEntity responseEntity = response.first();
+            if( responseEntity != null ) {
+                this.copyAllProperties(responseEntity);
+            }
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse remove() {
+        return this.remove(Usergrid.getInstance());
+    }
+
+    @NotNull
+    public UsergridResponse remove(@NotNull final UsergridClient client) {
+        return client.DELETE(this);
+    }
+
+    @NotNull
+    public UsergridResponse connect(@NotNull final String relationship, @NotNull final UsergridEntity toEntity) {
+        return this.connect(Usergrid.getInstance(), relationship, toEntity);
+    }
+
+    @NotNull
+    public UsergridResponse connect(@NotNull final UsergridClient client, @NotNull final String relationship, @NotNull final UsergridEntity toEntity) {
+        return client.connect(this,relationship,toEntity);
+    }
+
+    @NotNull
+    public UsergridResponse disconnect(@NotNull final String relationship, @NotNull final UsergridEntity fromEntity) {
+        return this.disconnect(Usergrid.getInstance(), relationship, fromEntity);
+    }
+
+    @NotNull
+    public UsergridResponse disconnect(@NotNull final UsergridClient client, @NotNull final String relationship, @NotNull final UsergridEntity fromEntity) {
+        return client.disconnect(this,relationship,fromEntity);
+    }
+
+    @NotNull
+    public UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final String relationship) {
+        return this.getConnections(Usergrid.getInstance(),direction,relationship);
+    }
+
+    @NotNull
+    public UsergridResponse getConnections(@NotNull final UsergridClient client, @NotNull final UsergridDirection direction, @NotNull final String relationship) {
+        return client.getConnections(direction,this,relationship);
+    }
+
+    public void removeProperty(@NotNull final String name) {
+        putProperty(name, NullNode.getInstance());
+    }
+
+    public void removeProperties(@NotNull final List<String> names) {
+        for( String propertyName : names ) {
+            this.removeProperty(propertyName);
+        }
+    }
+
+    public void putProperty(@NotNull final String name, @NotNull final String value) {
+        this.putProperty(name, JsonNodeFactory.instance.textNode(value));
+    }
+    public void putProperty(@NotNull final String name, final boolean value) {
+        this.putProperty(name, JsonNodeFactory.instance.booleanNode(value));
+    }
+    public void putProperty(@NotNull final String name, @NotNull final List value) {
+        this.putProperty(name, JsonNodeFactory.instance.pojoNode(value));
+    }
+    public void putProperty(@NotNull final String name, final int value) {
+        this.putProperty(name, JsonNodeFactory.instance.numberNode(value));
+    }
+    public void putProperty(@NotNull final String name, final long value) {
+        this.putProperty(name, JsonNodeFactory.instance.numberNode(value));
+    }
+    public void putProperty(@NotNull final String name, final float value) {
+        this.putProperty(name, JsonNodeFactory.instance.numberNode(value));
+    }
+    public void putProperty(@NotNull final String name, @Nullable final JsonNode value) {
+        UsergridEntityProperties entityProperty = UsergridEntityProperties.fromString(name);
+        if( entityProperty != null && !entityProperty.isMutableForEntity(this)) {
+            return;
+        }
+
+        JsonNode valueNode = value;
+        if( valueNode == null ) {
+            valueNode = NullNode.getInstance();
+        }
+        this.updatePropertiesWithMap(Collections.singletonMap(name,valueNode));
+    }
+    public void putProperties(@NotNull final String jsonString) {
+        try {
+            JsonNode jsonNode = entityUpdateMapper.readTree(jsonString);
+            this.putProperties(jsonNode);
+        } catch( Exception ignore ) {}
+    }
+    public void putProperties(@NotNull final Map<String, Object> properties) {
+        try {
+            JsonNode jsonNode = entityUpdateMapper.valueToTree(properties);
+            this.putProperties(jsonNode);
+        } catch( Exception ignore ) {}
+    }
+    public void putProperties(@NotNull final JsonNode jsonNode) {
+        HashMap<String,JsonNode> propertiesToUpdate = new HashMap<>();
+        Iterator<Map.Entry<String,JsonNode>> keys = jsonNode.fields();
+        while (keys.hasNext()) {
+            Map.Entry<String,JsonNode> entry = keys.next();
+            String key = entry.getKey();
+            UsergridEntityProperties entityProperty = UsergridEntityProperties.fromString(key);
+            if( entityProperty == null || entityProperty.isMutableForEntity(this) ) {
+                propertiesToUpdate.put(key,entry.getValue());
+            }
+        }
+        if( !propertiesToUpdate.isEmpty() ) {
+            this.updatePropertiesWithMap(propertiesToUpdate);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public void append(@NotNull final String name, @NotNull final Object value) {
+        this.append(name, (value instanceof List) ? (List<Object>) value : Collections.singletonList(value));
+    }
+
+    public void append(@NotNull final String name, @NotNull final List<Object> value) {
+        this.insert(name, value, Integer.MAX_VALUE);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void insert(@NotNull final String name, @NotNull final Object value) {
+        this.insert(name, (value instanceof List) ? (List<Object>) value : Collections.singletonList(value), 0);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void insert(@NotNull final String name, @NotNull final Object value, final int index) {
+        this.insert(name, (value instanceof List) ? (List<Object>) value : Collections.singletonList(value), index);
+    }
+
+    public void insert(@NotNull final String name, @NotNull final List<Object> value) {
+        this.insert(name,value,0);
+    }
+
+    public void insert(@NotNull final String name, @NotNull final List<Object> value, final int index) {
+        int indexToInsert = index;
+        if (indexToInsert < 0) {
+            indexToInsert = 0;
+        }
+        Object propertyValue = this.getEntityProperty(name);
+        if( propertyValue != null ) {
+            ArrayList<Object> propertyArrayValue = this.convertToList(propertyValue);
+            propertyArrayValue = this.insertIntoArray(propertyArrayValue,value,indexToInsert);
+            this.putProperty(name, propertyArrayValue);
+        } else {
+            this.putProperty(name, value);
+        }
+    }
+
+    public void pop(@NotNull final String name) {
+        ArrayList<Object> arrayToPop = this.getArrayToPopOrShift(name);
+        if( arrayToPop != null && !arrayToPop.isEmpty() ) {
+            arrayToPop.remove(arrayToPop.size() - 1);
+            this.putProperty(name, arrayToPop);
+        }
+    }
+
+    public void shift(@NotNull final String name) {
+        ArrayList<Object> arrayToShift = this.getArrayToPopOrShift(name);
+        if( arrayToShift != null && !arrayToShift.isEmpty() ) {
+            arrayToShift.remove(0);
+            this.putProperty(name, arrayToShift);
+        }
+    }
+
+    @Nullable
+    public <T> T getEntityProperty(@NotNull final String name) {
+        return JsonUtils.getProperty(this.properties, name);
+    }
+
+    @Nullable
+    public JsonNode getJsonNodeProperty(@NotNull final String name) {
+        return this.getProperties().get(name);
+    }
+
+    @Nullable
+    public String getStringProperty(@NotNull final String name) {
+        return JsonUtils.getStringProperty(this.getProperties(), name);
+    }
+
+    @Nullable
+    public Boolean getBooleanProperty(@NotNull final String name) {
+        Boolean booleanValue = null;
+        Object object = JsonUtils.getProperty(this.getProperties(), name);
+        if( object instanceof Boolean ) {
+            booleanValue = (Boolean)object;
+        }
+        return booleanValue;
+    }
+
+    @Nullable
+    public Number getNumberProperty(@NotNull final String name) {
+        Number numberValue = null;
+        Object object = JsonUtils.getProperty(this.getProperties(), name);
+        if( object instanceof Number ) {
+            numberValue = (Number)object;
+        }
+        return numberValue;
+    }
+
+    @Nullable
+    public Integer getIntegerProperty(@NotNull final String name) {
+        Integer integerValue = null;
+        Object object = JsonUtils.getProperty(this.getProperties(), name);
+        if( object instanceof Number ) {
+            integerValue = ((Number)object).intValue();
+        }
+        return integerValue;
+    }
+
+    @Nullable
+    public Float getFloatProperty(@NotNull final String name) {
+        Float floatValue = null;
+        Object object = JsonUtils.getProperty(this.getProperties(), name);
+        if( object instanceof Number ) {
+            floatValue = ((Number)object).floatValue();
+        }
+        return floatValue;
+    }
+
+    @Nullable
+    public Long getLongProperty(@NotNull final String name) {
+        Long longValue = null;
+        Object object = JsonUtils.getProperty(this.getProperties(), name);
+        if( object instanceof Number ) {
+            longValue = ((Number)object).longValue();
+        }
+        return longValue;
+    }
+
+    @JsonAnyGetter @NotNull
+    private Map<String, JsonNode> getProperties() {
+        return this.properties;
+    }
+
+    @JsonAnySetter
+    private void internalPutProperty(@NotNull final String name, @Nullable final JsonNode value) {
+        if (value == null) {
+            properties.put(name, NullNode.instance);
+        } else {
+            properties.put(name, value);
+        }
+    }
+
+    @Nullable
+    @SuppressWarnings("unchecked")
+    private ArrayList<Object> getArrayToPopOrShift(@NotNull final String name) {
+        Object entityProperty = getEntityProperty(name);
+        ArrayList<Object> arrayToPopOrShift = null;
+        if (entityProperty instanceof POJONode) {
+            Object objectValue = ((POJONode) entityProperty).getPojo();
+            if (objectValue instanceof List) {
+                arrayToPopOrShift = new ArrayList<>((List) objectValue);
+            } else {
+                arrayToPopOrShift = new ArrayList<>();
+                arrayToPopOrShift.add(objectValue);
+            }
+        } else if( entityProperty instanceof ArrayNode ) {
+            arrayToPopOrShift = JsonUtils.convertToArrayList((ArrayNode)entityProperty);
+        } else if( entityProperty instanceof List ) {
+            arrayToPopOrShift = new ArrayList<>((List) entityProperty);
+        }
+        return arrayToPopOrShift;
+    }
+
+    @NotNull
+    private ArrayList<Object> convertToList(@NotNull final Object value) {
+        ArrayList<Object> arrayList = new ArrayList<>();
+        if( value instanceof ArrayNode ) {
+            arrayList = JsonUtils.convertToArrayList((ArrayNode)value);
+        } else if (value instanceof POJONode) {
+            Object objectValue = ((POJONode) value).getPojo();
+            if( objectValue instanceof List ) {
+                arrayList.addAll((List)objectValue);
+            } else {
+                arrayList.add(objectValue);
+            }
+        } else if (value instanceof List) {
+            arrayList.addAll((List)value);
+        } else {
+            arrayList.add(value);
+        }
+        return arrayList;
+    }
+
+    @NotNull
+    private ArrayList<Object> insertIntoArray(@NotNull final List<Object> propertyArrayNode, @NotNull final List<Object> arrayToInsert, final int index) {
+        ArrayList<Object> mergedArray = new ArrayList<>();
+        if (propertyArrayNode.size() <= 0 || arrayToInsert.isEmpty()) {
+            mergedArray.addAll(arrayToInsert);
+        }  else if ( index <= 0 ) {
+            mergedArray.addAll(arrayToInsert);
+            mergedArray.addAll(propertyArrayNode);
+        } else if ( index > 0 ) {
+            mergedArray.addAll(propertyArrayNode);
+            if ( index > propertyArrayNode.size() ) {
+                mergedArray.addAll(arrayToInsert);
+            } else {
+                mergedArray.addAll(index,arrayToInsert);
+            }
+        }
+        return mergedArray;
+    }
+}
\ No newline at end of file
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java
new file mode 100644
index 0000000..f967e46
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java
@@ -0,0 +1,198 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.UsergridClient;
+import org.apache.usergrid.java.client.UsergridEnums.*;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.HashMap;
+
+@SuppressWarnings("unused")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class UsergridUser extends UsergridEntity {
+    @NotNull public final static String USER_ENTITY_TYPE = "user";
+
+    @Nullable private UsergridUserAuth userAuth = null;
+
+    @Nullable private String username;
+    @Nullable private String email;
+    @Nullable private String password;
+    @Nullable private String picture;
+
+    private boolean activated = false;
+    private boolean disabled = false;
+
+    public UsergridUser() {
+        super(USER_ENTITY_TYPE);
+    }
+
+    public UsergridUser(@NotNull final String username, @Nullable final String password) {
+        super(USER_ENTITY_TYPE);
+        setUsername(username);
+        setPassword(password);
+    }
+
+    public UsergridUser(@NotNull final String name, @NotNull final HashMap<String, Object> propertyMap) {
+        super(USER_ENTITY_TYPE,name);
+        putProperties(propertyMap);
+    }
+
+    public UsergridUser(@Nullable final String name, @Nullable final String username, @Nullable final String email, @Nullable final String password) {
+        super(USER_ENTITY_TYPE,name);
+        setUsername(username);
+        setEmail(email);
+        setPassword(password);
+    }
+
+    public void setName(@Nullable final String name) { super.setName(name); }
+
+    @Nullable public String getUsername() { return this.username; }
+    public void setUsername(@Nullable final String username) { this.username = username; }
+
+    @Nullable public String getEmail() { return this.email; }
+    public void setEmail(@Nullable final String email) { this.email = email; }
+
+    @Nullable public String getPassword() { return this.password; }
+    public void setPassword(@Nullable final String password) { this.password = password; }
+
+    @Nullable public String getPicture() { return this.picture; }
+    public void setPicture(@Nullable final String picture) { this.picture = picture; }
+
+    public boolean isActivated() { return this.activated; }
+    public void setActivated(final boolean activated) { this.activated = activated; }
+
+    public boolean isDisabled() { return this.disabled; }
+    public void setDisabled(final boolean disabled) { this.disabled = disabled; }
+
+    @JsonIgnore @Nullable public UsergridUserAuth getUserAuth() { return this.userAuth; }
+    @JsonIgnore public void setUserAuth(@Nullable final UsergridUserAuth userAuth) { this.userAuth = userAuth; }
+
+    @Nullable
+    public String uuidOrUsername() {
+        String uuidOrUsername = this.getUuid();
+        if( uuidOrUsername == null ) {
+            uuidOrUsername = this.getUsername();
+        }
+        return uuidOrUsername;
+    }
+
+    @Nullable
+    public String usernameOrEmail() {
+        String usernameOrEmail = this.getUsername();
+        if( usernameOrEmail == null ) {
+            usernameOrEmail = this.getEmail();
+        }
+        return usernameOrEmail;
+    }
+
+    public static boolean checkAvailable(@Nullable final String email, @Nullable final String username) {
+        return UsergridUser.checkAvailable(Usergrid.getInstance(), email, username);
+    }
+
+    public static boolean checkAvailable(@NotNull final UsergridClient client, @Nullable final String email, @Nullable final String username) {
+        if (email == null && username == null) {
+            throw new IllegalArgumentException("email and username both are null ");
+        }
+        UsergridQuery query = new UsergridQuery(USER_ENTITY_TYPE);
+        if (username != null) {
+            query.eq(UsergridUserProperties.USERNAME.toString(), username);
+        }
+        if (email != null) {
+            query.or().eq(UsergridUserProperties.EMAIL.toString(), email);
+        }
+        return client.GET(query).first() != null;
+    }
+
+    @NotNull
+    public UsergridResponse create() {
+        return this.create(Usergrid.getInstance());
+    }
+
+    @NotNull
+    public UsergridResponse create(@NotNull final UsergridClient client) {
+        UsergridResponse response = client.POST(this);
+        UsergridUser createdUser = response.user();
+        if( createdUser != null ) {
+            this.copyAllProperties(createdUser);
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse login(@NotNull final String username, @NotNull final String password) {
+        return this.login(Usergrid.getInstance(),username,password);
+    }
+
+    @NotNull
+    public UsergridResponse login(@NotNull final UsergridClient client, @NotNull final String username, @NotNull final String password) {
+        UsergridUserAuth userAuth = new UsergridUserAuth(username,password);
+        UsergridResponse response = client.authenticateUser(userAuth,false);
+        if( response.ok() ) {
+            this.userAuth = userAuth;
+        }
+        return response;
+    }
+
+    @NotNull
+    public UsergridResponse resetPassword(@NotNull final String oldPassword, @NotNull final String newPassword) {
+        return this.resetPassword(Usergrid.getInstance(),oldPassword,newPassword);
+    }
+
+    @NotNull
+    public UsergridResponse resetPassword(@NotNull final UsergridClient client, @NotNull final String oldPassword, @NotNull final String newPassword) {
+        return client.resetPassword(this,oldPassword,newPassword);
+    }
+
+    @NotNull
+    public UsergridResponse reauthenticate() {
+        return this.reauthenticate(Usergrid.getInstance());
+    }
+
+    @NotNull
+    public UsergridResponse reauthenticate(@NotNull final UsergridClient client) {
+        return this.userAuth == null ? UsergridResponse.fromError(client, "Invalid UsergridUserAuth.", "No UsergridUserAuth found on the UsergridUser.") : client.authenticateUser(this.userAuth, false);
+    }
+
+    @NotNull
+    public UsergridResponse logout() {
+        return this.logout(Usergrid.getInstance());
+    }
+
+    @NotNull
+    public UsergridResponse logout(@NotNull final UsergridClient client) {
+        UsergridResponse response;
+        String uuidOrUsername = this.uuidOrUsername();
+        String accessToken = (this.userAuth != null) ? this.userAuth.getAccessToken() : null;
+        if (uuidOrUsername == null || accessToken == null ) {
+            response = UsergridResponse.fromError(client,  "Logout Failed.", "UUID or Access Token not found on UsergridUser object.");
+        } else {
+            response = client.logoutUser(uuidOrUsername, accessToken);
+            if( response.ok() ) {
+                this.userAuth = null;
+            }
+        }
+        return response;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java
new file mode 100644
index 0000000..dc359c0
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java
@@ -0,0 +1,434 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.query;
+
+import org.apache.usergrid.java.client.UsergridEnums.UsergridQueryOperator;
+import org.apache.usergrid.java.client.UsergridEnums.UsergridQuerySortOrder;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.net.URLEncoder;
+import java.util.*;
+
+@SuppressWarnings("unused")
+public final class UsergridQuery {
+
+    @NotNull private final ArrayList<String> requirementStrings = new ArrayList<>();
+    @NotNull private final ArrayList<String> urlTerms = new ArrayList<>();
+    @NotNull private final HashMap<String, UsergridQuerySortOrder> orderClauses = new HashMap<>();
+    @NotNull private Integer limit = UsergridQuery.LIMIT_DEFAULT;
+    @Nullable private String cursor = null;
+    @Nullable private String fromStringValue = null;
+    @Nullable private String collectionName = null;
+
+    public UsergridQuery() {
+        this(null);
+    }
+
+    public UsergridQuery(@Nullable final String collectionName) {
+        this.collectionName = collectionName;
+        this.requirementStrings.add(UsergridQuery.EMPTY_STRING);
+    }
+
+    private static boolean isUUID(@NotNull final String string) {
+        try {
+            UUID uuid = UUID.fromString(string);
+            return true;
+        } catch (Exception ex) {
+            return false;
+        }
+    }
+
+    @NotNull
+    private static String encode(@NotNull final String stringValue) {
+        String escapedString;
+        try {
+            escapedString = URLEncoder.encode(stringValue, UTF8);
+        } catch (Exception e) {
+            escapedString = stringValue;
+        }
+        return escapedString;
+    }
+
+    @NotNull
+    public static String strJoin(@NotNull final List<String> array, @NotNull final String separator) {
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0, il = array.size(); i < il; i++) {
+            if (i > 0) {
+                stringBuilder.append(separator);
+            }
+            stringBuilder.append(array.get(i));
+        }
+        return stringBuilder.toString();
+    }
+
+    @NotNull
+    public UsergridQuery fromString(@NotNull final String stringValue) {
+        this.fromStringValue = stringValue;
+        return this;
+    }
+
+    @Nullable
+    public String getType() {
+        return this.collectionName;
+    }
+
+    @Nullable
+    public String getCollectionName() {
+        return this.collectionName;
+    }
+
+    @Nullable
+    public String getCollection() {
+        return this.collectionName;
+    }
+
+    @NotNull
+    public UsergridQuery type(@Nullable final String type) {
+        this.collectionName = type;
+        return this;
+    }
+
+    @NotNull
+    public UsergridQuery collection(@Nullable final String collectionName) {
+        return this.type(collectionName);
+    }
+
+    @NotNull
+    public UsergridQuery collectionName(@Nullable final String collectionName) {
+        return this.type(collectionName);
+    }
+
+    @NotNull
+    public UsergridQuery cursor(@Nullable final String value) {
+        this.cursor = value;
+        return this;
+    }
+
+    @NotNull
+    public UsergridQuery limit(@NotNull final Integer limit) {
+        this.limit = limit;
+        return this;
+    }
+
+    @NotNull
+    private UsergridQuery addConditionalSeparator(@NotNull final String separator) {
+        if (!this.requirementStrings.get(0).isEmpty()) {
+            this.requirementStrings.add(0, separator);
+            this.requirementStrings.add(0, UsergridQuery.EMPTY_STRING);
+        }
+        return this;
+    }
+
+    @NotNull
+    public UsergridQuery and() {
+        return this.addConditionalSeparator(UsergridQuery.AND);
+    }
+
+    @NotNull
+    public UsergridQuery or() {
+        return this.addConditionalSeparator(UsergridQuery.OR);
+    }
+
+    @NotNull
+    public UsergridQuery not() {
+        return this.addConditionalSeparator(UsergridQuery.NOT);
+    }
+
+    @NotNull
+    public UsergridQuery sort(@NotNull final String term, @NotNull final UsergridQuerySortOrder sortOrder) {
+        this.orderClauses.put(term, sortOrder);
+        return this;
+    }
+
+    @NotNull
+    public UsergridQuery ascending(@NotNull final String term) {
+        return this.asc(term);
+    }
+
+    @NotNull
+    public UsergridQuery asc(@NotNull final String term) {
+        return this.sort(term, UsergridQuerySortOrder.ASC);
+    }
+
+    @NotNull
+    public UsergridQuery descending(@NotNull final String term) {
+        return this.desc(term);
+    }
+
+    @NotNull
+    public UsergridQuery desc(@NotNull final String term) {
+        return this.sort(term, UsergridQuerySortOrder.DESC);
+    }
+
+    @NotNull
+    public UsergridQuery contains(@NotNull final String term, @NotNull final String value) {
+        return this.containsWord(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery containsString(@NotNull final String term, @NotNull final String value) {
+        return this.containsWord(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery containsWord(@NotNull final String term, @NotNull final String value) {
+        return this.addRequirement(term + SPACE + CONTAINS + SPACE + ((UsergridQuery.isUUID(value)) ? EMPTY_STRING : APOSTROPHE) + value + ((UsergridQuery.isUUID(value)) ? EMPTY_STRING : APOSTROPHE));
+    }
+
+    @NotNull
+    public UsergridQuery filter(@NotNull final String term, @NotNull final Object value) {
+        return this.eq(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery equals(@NotNull final String term, @NotNull final Object value) {
+        return this.eq(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery eq(@NotNull final String term, @NotNull final Object value) {
+        return this.addOperationRequirement(term, UsergridQueryOperator.EQUAL, value);
+    }
+
+    @NotNull
+    public UsergridQuery greaterThan(@NotNull final String term, @NotNull final Object value) {
+        return this.gt(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery gt(@NotNull final String term, @NotNull final Object value) {
+        return this.addOperationRequirement(term, UsergridQueryOperator.GREATER_THAN, value);
+    }
+
+    @NotNull
+    public UsergridQuery greaterThanOrEqual(@NotNull final String term, @NotNull final Object value) {
+        return this.gte(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery gte(@NotNull final String term, @NotNull final Object value) {
+        return this.addOperationRequirement(term, UsergridQueryOperator.GREATER_THAN_EQUAL_TO, value);
+    }
+
+    @NotNull
+    public UsergridQuery lessThan(@NotNull final String term, @NotNull final Object value) {
+        return this.lt(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery lt(@NotNull final String term, @NotNull final Object value) {
+        return this.addOperationRequirement(term, UsergridQueryOperator.LESS_THAN, value);
+    }
+
+    @NotNull
+    public UsergridQuery lessThanOrEqual(@NotNull final String term, @NotNull final Object value) {
+        return this.lte(term, value);
+    }
+
+    @NotNull
+    public UsergridQuery lte(@NotNull final String term, @NotNull final Object value) {
+        return this.addOperationRequirement(term, UsergridQueryOperator.LESS_THAN_EQUAL_TO, value);
+    }
+
+    @NotNull
+    public UsergridQuery locationWithin(final double distance, final double latitude, final double longitude) {
+        return this.addRequirement(LOCATION + SPACE + WITHIN + SPACE + distance + SPACE + OF + SPACE + latitude + SPACE + COMMA + longitude);
+    }
+
+    @NotNull
+    public UsergridQuery urlTerm(@NotNull final String term, @NotNull final String equalsValue) {
+        if (term.equalsIgnoreCase(QL)) {
+            this.ql(equalsValue);
+        } else {
+            this.urlTerms.add(UsergridQuery.encode(term) + EQUALS + UsergridQuery.encode(equalsValue));
+        }
+        return this;
+    }
+
+    @NotNull
+    public UsergridQuery ql(@NotNull final String value) {
+        return this.addRequirement(value);
+    }
+
+    @NotNull
+    public UsergridQuery addRequirement(@NotNull final String requirement) {
+        String requirementString = this.requirementStrings.remove(0);
+        if (!requirement.isEmpty() && !requirementString.isEmpty()) {
+            requirementString += SPACE + AND + SPACE;
+        }
+        requirementString += requirement;
+        this.requirementStrings.add(0, requirementString);
+        return this;
+    }
+
+    @NotNull
+    public UsergridQuery addOperationRequirement(@NotNull final String term, @NotNull final UsergridQueryOperator operation, final int intValue) {
+        return this.addOperationRequirement(term, operation, Integer.valueOf(intValue));
+    }
+
+    @NotNull
+    public UsergridQuery addOperationRequirement(@NotNull final String term, @NotNull final UsergridQueryOperator operation, @NotNull final Object value) {
+        if (value instanceof String) {
+            String valueString = value.toString();
+            if (!UsergridQuery.isUUID(valueString)) {
+                valueString = APOSTROPHE + value + APOSTROPHE;
+            }
+            return addRequirement(term + SPACE + operation.operatorValue() + SPACE + valueString);
+        } else {
+            return addRequirement(term + SPACE + operation.operatorValue() + SPACE + value.toString());
+        }
+    }
+
+    @NotNull
+    private String constructOrderByString() {
+        String orderByString = EMPTY_STRING;
+        if (!this.orderClauses.isEmpty()) {
+            for (Map.Entry<String, UsergridQuerySortOrder> orderClause : this.orderClauses.entrySet()) {
+                if (!orderByString.isEmpty()) {
+                    orderByString += COMMA;
+                }
+                orderByString += orderClause.getKey() + SPACE + orderClause.getValue().toString();
+            }
+            if (!orderByString.isEmpty()) {
+                orderByString = SPACE + ORDER_BY + SPACE + orderByString;
+            }
+        }
+        return orderByString;
+    }
+
+    @NotNull
+    private String constructURLTermsString() {
+        String urlTermsString = EMPTY_STRING;
+        if (!this.urlTerms.isEmpty()) {
+            urlTermsString = UsergridQuery.strJoin(this.urlTerms, AMPERSAND);
+        }
+        return urlTermsString;
+    }
+
+    @NotNull
+    private String constructRequirementString() {
+        ArrayList<String> requirementStrings = new ArrayList<>(this.requirementStrings);
+        String firstString = requirementStrings.get(0);
+        if (firstString.isEmpty()) {
+            requirementStrings.remove(0);
+        }
+        String requirementsString = EMPTY_STRING;
+        if (!requirementStrings.isEmpty()) {
+            firstString = requirementStrings.get(0);
+            if (firstString.equalsIgnoreCase(OR) || firstString.equalsIgnoreCase(AND) || firstString.equalsIgnoreCase(NOT)) {
+                requirementStrings.remove(0);
+            }
+            if (!requirementStrings.isEmpty()) {
+                Collections.reverse(requirementStrings);
+                requirementsString = UsergridQuery.strJoin(requirementStrings, SPACE);
+            }
+        }
+        return requirementsString;
+    }
+
+    @NotNull
+    private String constructURLAppend() {
+        return this.constructURLAppend(true);
+    }
+
+    @NotNull
+    private String constructURLAppend(final boolean autoURLEncode) {
+        if (this.fromStringValue != null) {
+            String requirementsString = this.fromStringValue;
+            if (autoURLEncode) {
+                requirementsString = UsergridQuery.encode(requirementsString);
+            }
+            return QUESTION_MARK + QL + EQUALS + requirementsString;
+        }
+        String urlAppend = EMPTY_STRING;
+        if (this.limit != LIMIT_DEFAULT) {
+            urlAppend += LIMIT + EQUALS + this.limit.toString();
+        }
+        String urlTermsString = this.constructURLTermsString();
+        if (!urlTermsString.isEmpty()) {
+            if (!urlAppend.isEmpty()) {
+                urlAppend += AMPERSAND;
+            }
+            urlAppend += urlTermsString;
+        }
+        if (this.cursor != null && !this.cursor.isEmpty()) {
+            if (!urlAppend.isEmpty()) {
+                urlAppend += AMPERSAND;
+            }
+            urlAppend += CURSOR + EQUALS + this.cursor;
+        }
+
+        String requirementsString = this.constructRequirementString();
+        if (!requirementsString.isEmpty()) {
+            requirementsString = SELECT_ALL + SPACE + WHERE + SPACE + requirementsString;
+        } else {
+            requirementsString = SELECT_ALL + SPACE;
+        }
+
+        String orderByString = this.constructOrderByString();
+        if (!orderByString.isEmpty()) {
+            requirementsString += orderByString;
+        }
+        if (!requirementsString.isEmpty()) {
+            if (autoURLEncode) {
+                requirementsString = UsergridQuery.encode(requirementsString);
+            }
+            if (!urlAppend.isEmpty()) {
+                urlAppend += AMPERSAND;
+            }
+            urlAppend += QL + EQUALS + requirementsString;
+        }
+        if (!urlAppend.isEmpty()) {
+            urlAppend = QUESTION_MARK + urlAppend;
+        }
+        return urlAppend;
+    }
+
+    @NotNull
+    public String build() {
+        return this.build(true);
+    }
+
+    @NotNull
+    public String build(final boolean autoURLEncode) {
+        return this.constructURLAppend(autoURLEncode);
+    }
+
+    private static final int LIMIT_DEFAULT = 10;
+    @NotNull private static final String AMPERSAND = "&";
+    @NotNull private static final String AND = "and";
+    @NotNull private static final String APOSTROPHE = "'";
+    @NotNull private static final String COMMA = ",";
+    @NotNull private static final String CONTAINS = "contains";
+    @NotNull private static final String CURSOR = "cursor";
+    @NotNull private static final String EMPTY_STRING = "";
+    @NotNull private static final String EQUALS = "=";
+    @NotNull private static final String LIMIT = "limit";
+    @NotNull private static final String LOCATION = "location";
+    @NotNull private static final String NOT = "not";
+    @NotNull private static final String OF = "of";
+    @NotNull private static final String OR = "or";
+    @NotNull private static final String ORDER_BY = "order by";
+    @NotNull private static final String QL = "ql";
+    @NotNull private static final String QUESTION_MARK = "?";
+    @NotNull private static final String SELECT_ALL = "select *";
+    @NotNull private static final String SPACE = " ";
+    @NotNull private static final String UTF8 = "UTF-8";
+    @NotNull private static final String WHERE = "where";
+    @NotNull private static final String WITHIN = "within";
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/AggregateCounter.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/AggregateCounter.java
deleted file mode 100644
index 240d09f..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/AggregateCounter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.response;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.toJsonString;
-
-public class AggregateCounter {
-
-	private long timestamp;
-	private long value;
-
-	public AggregateCounter(long timestamp, long value) {
-		this.timestamp = timestamp;
-		this.value = value;
-	}
-
-	public long getTimestamp() {
-		return timestamp;
-	}
-
-	public void setTimestamp(long timestamp) {
-		this.timestamp = timestamp;
-	}
-
-	public long getValue() {
-		return value;
-	}
-
-	public void setValue(long value) {
-		this.value = value;
-	}
-
-	@Override
-	public String toString() {
-		return toJsonString(this);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/AggregateCounterSet.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/AggregateCounterSet.java
deleted file mode 100644
index 499af3e..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/AggregateCounterSet.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.response;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.toJsonString;
-
-import java.util.List;
-import java.util.UUID;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
-
-public class AggregateCounterSet {
-	private String name;
-	private UUID user;
-	private UUID group;
-	private UUID queue;
-	private String category;
-	private List<AggregateCounter> values;
-
-	public AggregateCounterSet(String name, UUID user, UUID group,
-			String category, List<AggregateCounter> values) {
-		this.name = name;
-		this.user = user;
-		this.group = group;
-		this.category = category;
-		this.values = values;
-	}
-
-	public AggregateCounterSet(String name, UUID queue, String category,
-			List<AggregateCounter> values) {
-		this.name = name;
-		setQueue(queue);
-		this.category = category;
-		this.values = values;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getUser() {
-		return user;
-	}
-
-	public void setUser(UUID user) {
-		this.user = user;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getGroup() {
-		return group;
-	}
-
-	public void setGroup(UUID group) {
-		this.group = group;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getCategory() {
-		return category;
-	}
-
-	public void setCategory(String category) {
-		this.category = category;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public List<AggregateCounter> getValues() {
-		return values;
-	}
-
-	public void setValues(List<AggregateCounter> values) {
-		this.values = values;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getQueue() {
-		return queue;
-	}
-
-	public void setQueue(UUID queue) {
-		this.queue = queue;
-	}
-
-	@Override
-	public String toString() {
-		return toJsonString(this);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/ApiResponse.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/ApiResponse.java
deleted file mode 100644
index a87e293..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/ApiResponse.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.response;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.toJsonString;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
-import org.apache.usergrid.java.client.entities.Entity;
-import org.apache.usergrid.java.client.entities.Message;
-import org.apache.usergrid.java.client.entities.User;
-
-public class ApiResponse {
-
-	private String accessToken;
-
-	private String error;
-	private String errorDescription;
-	private String errorUri;
-	private String exception;
-
-	private String path;
-	private String uri;
-	private String status;
-	private long timestamp;
-	private UUID application;
-	private List<Entity> entities;
-	private UUID next;
-	private String cursor;
-	private String action;
-	private List<Object> list;
-	private Object data;
-	private Map<String, UUID> applications;
-	private Map<String, JsonNode> metadata;
-	private Map<String, List<String>> params;
-	private List<AggregateCounterSet> counters;
-	private ClientCredentialsInfo credentials;
-
-	private List<Message> messages;
-	private List<QueueInfo> queues;
-	private UUID last;
-	private UUID queue;
-	private UUID consumer;
-
-	private User user;
-
-	private final Map<String, JsonNode> properties = new HashMap<String, JsonNode>();
-
-	public ApiResponse() {
-	}
-
-	@JsonAnyGetter
-	public Map<String, JsonNode> getProperties() {
-		return properties;
-	}
-
-	@JsonAnySetter
-	public void setProperty(String key, JsonNode value) {
-		properties.put(key, value);
-	}
-
-	@JsonProperty("access_token")
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getAccessToken() {
-		return accessToken;
-	}
-
-	@JsonProperty("access_token")
-	public void setAccessToken(String accessToken) {
-		this.accessToken = accessToken;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getError() {
-		return error;
-	}
-
-	public void setError(String error) {
-		this.error = error;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	@JsonProperty("error_description")
-	public String getErrorDescription() {
-		return errorDescription;
-	}
-
-	@JsonProperty("error_description")
-	public void setErrorDescription(String errorDescription) {
-		this.errorDescription = errorDescription;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	@JsonProperty("error_uri")
-	public String getErrorUri() {
-		return errorUri;
-	}
-
-	@JsonProperty("error_uri")
-	public void setErrorUri(String errorUri) {
-		this.errorUri = errorUri;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getException() {
-		return exception;
-	}
-
-	public void setException(String exception) {
-		this.exception = exception;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getPath() {
-		return path;
-	}
-
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getUri() {
-		return uri;
-	}
-
-	public void setUri(String uri) {
-		this.uri = uri;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getStatus() {
-		return status;
-	}
-
-	public void setStatus(String status) {
-		this.status = status;
-	}
-
-	public long getTimestamp() {
-		return timestamp;
-	}
-
-	public void setTimestamp(long timestamp) {
-		this.timestamp = timestamp;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getApplication() {
-		return application;
-	}
-
-	public void setApplication(UUID application) {
-		this.application = application;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public List<Entity> getEntities() {
-		return entities;
-	}
-
-	public void setEntities(List<Entity> entities) {
-		this.entities = entities;
-	}
-
-	public int getEntityCount() {
-		if (entities == null) {
-			return 0;
-		}
-		return entities.size();
-	}
-
-	public Entity getFirstEntity() {
-		if ((entities != null) && (entities.size() > 0)) {
-			return entities.get(0);
-		}
-		return null;
-	}
-
-	public <T extends Entity> T getFirstEntity(Class<T> t) {
-		return Entity.toType(getFirstEntity(), t);
-	}
-
-	public Entity getLastEntity() {
-		if ((entities != null) && (entities.size() > 0)) {
-			return entities.get(entities.size() - 1);
-		}
-		return null;
-	}
-
-	public <T extends Entity> T getLastEntity(Class<T> t) {
-		return Entity.toType(getLastEntity(), t);
-	}
-
-	public <T extends Entity> List<T> getEntities(Class<T> t) {
-		return Entity.toType(entities, t);
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getNext() {
-		return next;
-	}
-
-	public void setNext(UUID next) {
-		this.next = next;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getCursor() {
-		return cursor;
-	}
-
-	public void setCursor(String cursor) {
-		this.cursor = cursor;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public String getAction() {
-		return action;
-	}
-
-	public void setAction(String action) {
-		this.action = action;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public List<Object> getList() {
-		return list;
-	}
-
-	public void setList(List<Object> list) {
-		this.list = list;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public Object getData() {
-		return data;
-	}
-
-	public void setData(Object data) {
-		this.data = data;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public Map<String, UUID> getApplications() {
-		return applications;
-	}
-
-	public void setApplications(Map<String, UUID> applications) {
-		this.applications = applications;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public Map<String, JsonNode> getMetadata() {
-		return metadata;
-	}
-
-	public void setMetadata(Map<String, JsonNode> metadata) {
-		this.metadata = metadata;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public Map<String, List<String>> getParams() {
-		return params;
-	}
-
-	public void setParams(Map<String, List<String>> params) {
-		this.params = params;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public List<AggregateCounterSet> getCounters() {
-		return counters;
-	}
-
-	public void setCounters(List<AggregateCounterSet> counters) {
-		this.counters = counters;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public ClientCredentialsInfo getCredentials() {
-		return credentials;
-	}
-
-	public void setCredentials(ClientCredentialsInfo credentials) {
-		this.credentials = credentials;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public User getUser() {
-		return user;
-	}
-
-	public void setUser(User user) {
-		this.user = user;
-	}
-
-	@Override
-	public String toString() {
-		return toJsonString(this);
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public List<Message> getMessages() {
-		return messages;
-	}
-
-	public void setMessages(List<Message> messages) {
-		this.messages = messages;
-	}
-
-	@JsonIgnore
-	public int getMessageCount() {
-		if (messages == null) {
-			return 0;
-		}
-		return messages.size();
-	}
-
-	@JsonIgnore
-	public Message getFirstMessage() {
-		if ((messages != null) && (messages.size() > 0)) {
-			return messages.get(0);
-		}
-		return null;
-	}
-
-	@JsonIgnore
-	public Entity getLastMessage() {
-		if ((messages != null) && (messages.size() > 0)) {
-			return messages.get(messages.size() - 1);
-		}
-		return null;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getLast() {
-		return last;
-	}
-
-	public void setLast(UUID last) {
-		this.last = last;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public List<QueueInfo> getQueues() {
-		return queues;
-	}
-
-	public void setQueues(List<QueueInfo> queues) {
-		this.queues = queues;
-	}
-
-	@JsonIgnore
-	public QueueInfo getFirstQueue() {
-		if ((queues != null) && (queues.size() > 0)) {
-			return queues.get(0);
-		}
-		return null;
-	}
-
-	@JsonIgnore
-	public QueueInfo getLastQueue() {
-		if ((queues != null) && (queues.size() > 0)) {
-			return queues.get(queues.size() - 1);
-		}
-		return null;
-	}
-
-	@JsonIgnore
-	public UUID getLastQueueId() {
-		QueueInfo q = getLastQueue();
-		if (q != null) {
-			return q.getQueue();
-		}
-		return null;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getQueue() {
-		return queue;
-	}
-
-	public void setQueue(UUID queue) {
-		this.queue = queue;
-	}
-
-	@JsonSerialize(include = Inclusion.NON_NULL)
-	public UUID getConsumer() {
-		return consumer;
-	}
-
-	public void setConsumer(UUID consumer) {
-		this.consumer = consumer;
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/ClientCredentialsInfo.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/ClientCredentialsInfo.java
deleted file mode 100644
index 7ac6b36..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/ClientCredentialsInfo.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.response;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.toJsonString;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class ClientCredentialsInfo {
-
-	private String id;
-	private String secret;
-
-	public ClientCredentialsInfo(String id, String secret) {
-		this.id = id;
-		this.secret = secret;
-	}
-
-	@JsonProperty("client_id")
-	public String getId() {
-		return id;
-	}
-
-	@JsonProperty("client_id")
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	@JsonProperty("client_secret")
-	public String getSecret() {
-		return secret;
-	}
-
-	@JsonProperty("client_secret")
-	public void setSecret(String secret) {
-		this.secret = secret;
-	}
-
-	@Override
-	public String toString() {
-		return toJsonString(this);
-	}
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java
new file mode 100644
index 0000000..ee649c4
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java
@@ -0,0 +1,230 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.response;
+
+import com.fasterxml.jackson.annotation.*;
+import com.fasterxml.jackson.databind.JsonNode;
+import okhttp3.Headers;
+import org.apache.usergrid.java.client.UsergridClient;
+import org.apache.usergrid.java.client.UsergridEnums;
+import org.apache.usergrid.java.client.UsergridRequest;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.apache.usergrid.java.client.model.UsergridUser;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.utils.JsonUtils;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.*;
+
+import static org.apache.usergrid.java.client.utils.JsonUtils.toJsonString;
+
+@SuppressWarnings("unused")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class UsergridResponse {
+
+    @Nullable private UsergridClient client;
+    @NotNull private Map<String, JsonNode> properties = new HashMap<>();
+
+    private int statusCode = 0;
+    @Nullable private JsonNode responseJson = null;
+    @Nullable private String cursor;
+    @Nullable private List<UsergridEntity> entities;
+    @Nullable private Map<String, String> headers;
+    @Nullable private UsergridQuery query;
+    @Nullable private UsergridResponseError responseError = null;
+
+    @Nullable private String accessToken;
+    @Nullable private Long expires;
+
+    public boolean ok() { return (statusCode > 0 && statusCode < 400); }
+    public int count()  { return (entities == null) ? 0 : entities.size(); }
+    public boolean hasNextPage() { return (cursor != null); }
+    @NotNull @Override public String toString() {
+        return toJsonString(this);
+    }
+
+    @Nullable public UsergridEntity first() { return (entities == null || entities.isEmpty()) ? null : entities.get(0); }
+    @Nullable public UsergridEntity entity() {
+        return first();
+    }
+    @Nullable public UsergridEntity last() { return (entities == null || entities.isEmpty()) ? null : entities.get(entities.size() - 1); }
+
+    @Nullable
+    public UsergridUser user() {
+        UsergridEntity entity = this.first();
+        if( entity != null && entity instanceof UsergridUser ) {
+            return (UsergridUser) entity;
+        }
+        return null;
+    }
+
+    @Nullable
+    public List<UsergridUser> users() {
+        ArrayList<UsergridUser> users = null;
+        if( entities != null && !entities.isEmpty() ) {
+            for( UsergridEntity entity : entities ) {
+                if( entity instanceof UsergridUser ) {
+                    if( users == null )  {
+                        users = new ArrayList<>();
+                    }
+                    users.add((UsergridUser)entity);
+                }
+            }
+        }
+        return users;
+    }
+
+    public int getStatusCode() { return this.statusCode; }
+
+    @Nullable @JsonIgnore
+    public UsergridClient getClient() {
+        return client;
+    }
+    @JsonIgnore public void setClient(@Nullable final UsergridClient client) { this.client = client; }
+
+    @Nullable @JsonIgnore
+    public JsonNode getResponseJson() {
+        return responseJson;
+    }
+    private void setResponseJson(@Nullable final JsonNode responseJson) {this.responseJson = responseJson; }
+
+    @Nullable @JsonIgnore
+    public UsergridQuery getQuery() {
+        return query;
+    }
+    private void setQuery(@Nullable final UsergridQuery query) { this.query = query; }
+
+    @Nullable
+    public UsergridResponseError getResponseError() {
+        return responseError;
+    }
+    private void setResponseError(@Nullable final UsergridResponseError responseError) { this.responseError = responseError; }
+
+    @Nullable
+    public Map<String, String> getHeaders() {
+        return headers;
+    }
+    private void setHeaders(@Nullable final Map<String, String> headers) { this.headers = headers; }
+
+    @Nullable
+    public List<UsergridEntity> getEntities() { return entities; }
+    private void setEntities(@NotNull final List<UsergridEntity> entities) { this.entities = entities; }
+
+    @Nullable @JsonProperty("cursor")
+    public String getCursor() {
+        return cursor;
+    }
+    @JsonProperty("cursor")
+    private void setCursor(@NotNull final String cursor) { this.cursor = cursor; }
+
+    @Nullable @JsonProperty("access_token")
+    public String getAccessToken() { return this.accessToken; }
+    @JsonProperty("access_token")
+    private void setAccessToken(@NotNull final String accessToken) { this.accessToken = accessToken; }
+
+    @Nullable @JsonProperty("expires_in")
+    public Long getExpires() { return this.expires; }
+    @JsonProperty("expires_in")
+    private void setExpires(@NotNull final Long expires) { this.expires = expires; }
+
+    @JsonProperty("user")
+    private void setUser(@NotNull final UsergridUser user) {
+        if( this.entities == null ) {
+            this.entities = new ArrayList<>();
+        }
+        this.entities.add(user);
+    }
+
+    @NotNull @JsonAnyGetter
+    public Map<String, JsonNode> getProperties() {
+        return properties;
+    }
+    @JsonAnySetter
+    private void setProperty(@NotNull final  String key, @NotNull final JsonNode value) {
+        properties.put(key, value);
+    }
+
+    @NotNull
+    public UsergridResponse loadNextPage() {
+        UsergridClient client = this.client;
+        UsergridEntity entity = this.first();
+        if( this.hasNextPage() && client != null && entity != null ) {
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("cursor", getCursor());
+            UsergridRequest request = new UsergridRequest(UsergridEnums.UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, client.clientAppUrl(), paramsMap, null, null, this.getQuery(), client.authForRequests() , entity.getType());
+            return client.sendRequest(request);
+        } else {
+            return UsergridResponse.fromError(client,"Error Loading Next Page.","Unable to load next page.");
+        }
+    }
+
+    @NotNull
+    public static UsergridResponse fromError(@Nullable final UsergridClient client, @NotNull final String errorName, @NotNull final String errorDescription) {
+        UsergridResponse response = new UsergridResponse();
+        response.client = client;
+        response.responseError = new UsergridResponseError(errorName,errorDescription);
+        return response;
+    }
+
+    @NotNull
+    public static UsergridResponse fromException(@Nullable final UsergridClient client, @NotNull final Exception ex) {
+        final UsergridResponse response = new UsergridResponse();
+        response.client = client;
+        final UsergridResponseError responseError = new UsergridResponseError();
+        responseError.setErrorDescription(ex.getMessage());
+        if( ex.getClass() != null ) {
+            responseError.setErrorName(ex.getClass().toString());
+        }
+        if( ex.getCause() != null ) {
+            responseError.setErrorException(ex.getCause().toString());
+        }
+        response.responseError = responseError;
+        return response;
+    }
+
+    @NotNull
+    public static UsergridResponse fromResponse(@NotNull final UsergridClient client, @NotNull final UsergridRequest request, @NotNull final okhttp3.Response requestResponse) {
+        UsergridResponse response;
+        JsonNode responseJson;
+        try {
+            String responseJsonString = requestResponse.body().string();
+            responseJson = JsonUtils.mapper.readTree(responseJsonString);
+        } catch ( Exception e ) {
+            return UsergridResponse.fromException(client,e);
+        }
+        if ( responseJson.has("error") )  {
+            response = new UsergridResponse();
+            response.responseError = JsonUtils.fromJsonNode(responseJson,UsergridResponseError.class);
+        } else {
+            response = JsonUtils.fromJsonNode(responseJson,UsergridResponse.class);
+        }
+        response.client = client;
+        response.responseJson = responseJson;
+        response.statusCode = requestResponse.code();
+
+        Headers responseHeaders = requestResponse.headers();
+        HashMap<String,String> headers = new HashMap<>();
+        for (int i = 0; i < responseHeaders.size(); i++) {
+            headers.put(responseHeaders.name(i),responseHeaders.value(i));
+        }
+
+        response.headers = headers;
+        response.query = request.getQuery();
+        return response;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java
new file mode 100644
index 0000000..387ae56
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.response;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@SuppressWarnings("unused")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class UsergridResponseError {
+
+    @Nullable private String errorName;
+    @Nullable private String errorDescription;
+    @Nullable private String errorException;
+
+    @NotNull private final Map<String, JsonNode> properties = new HashMap<>();
+
+    public UsergridResponseError() {
+        this(null,null,null);
+    }
+    public UsergridResponseError(@Nullable final String errorName) {
+        this(errorName, null, null);
+    }
+    public UsergridResponseError(@Nullable final String errorName, @Nullable final String errorDescription) {
+        this(errorName,errorDescription,null);
+    }
+    public UsergridResponseError(@Nullable final String errorName, @Nullable final String errorDescription, @Nullable final String errorException) {
+        this.errorName = errorName;
+        this.errorDescription = errorDescription;
+        this.errorException = errorException;
+    }
+
+    @NotNull
+    @JsonAnyGetter
+    public Map<String, JsonNode> getProperties() {
+        return properties;
+    }
+
+    @JsonAnySetter
+    public void setProperty(@NotNull final String key, @NotNull final JsonNode value) {
+        properties.put(key, value);
+    }
+
+    @Nullable
+    @JsonProperty("error")
+    public String getErrorName() {
+        return errorName;
+    }
+
+    @JsonProperty("error")
+    public void setErrorName(@NotNull final String errorName) {
+        this.errorName = errorName;
+    }
+
+    @Nullable
+    @JsonProperty("exception")
+    public String getErrorException() {
+        return errorException;
+    }
+
+    @JsonProperty("exception")
+    public void setErrorException(@NotNull final String errorException) {
+        this.errorException = errorException;
+    }
+
+    @Nullable
+    @JsonProperty("error_description")
+    public String getErrorDescription() {
+        return errorDescription;
+    }
+
+    @JsonProperty("error_description")
+    public void setErrorDescription(@NotNull final String errorDescription) {
+        this.errorDescription = errorDescription;
+    }
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/JsonUtils.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/JsonUtils.java
index a465199..dc1514b 100644
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/JsonUtils.java
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/JsonUtils.java
@@ -16,167 +16,137 @@
  */
 package org.apache.usergrid.java.client.utils;
 
-import java.io.IOException;
-import java.util.Map;
-import java.util.UUID;
-
 import com.fasterxml.jackson.core.JsonGenerationException;
 import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import org.apache.usergrid.java.client.exception.ClientException;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.node.*;
+import org.apache.usergrid.java.client.exception.UsergridException;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
-public class JsonUtils {
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Map;
 
+@SuppressWarnings("unused")
+public final class JsonUtils {
 
-	static ObjectMapper mapper = new ObjectMapper();
+    @NotNull public static final ObjectMapper mapper = new ObjectMapper();
 
-	public static String getStringProperty(Map<String, JsonNode> properties,
-			String name) {
-		JsonNode value = properties.get(name);
-		if (value != null) {
-			return value.asText();
-		}
-		return null;
-	}
+    static {
+        SimpleModule module = new SimpleModule();
+        module.addDeserializer(UsergridEntity.class, new UsergridEntityDeserializer());
+        mapper.registerModule(module);
+    }
 
-	public static void setStringProperty(Map<String, JsonNode> properties,
-			String name, String value) {
-		if (value == null) {
-			properties.remove(name);
-		} else {
-			properties.put(name, JsonNodeFactory.instance.textNode(value));
-		}
-	}
+    @NotNull
+    public static ObjectNode createObjectNode() {
+        return mapper.createObjectNode();
+    }
 
-	public static Long getLongProperty(Map<String, JsonNode> properties,
-			String name) {
-		JsonNode value = properties.get(name);
-		if (value != null) {
-			return value.asLong(0);
-		}
-		return null;
-	}
-
-	public static void setLongProperty(Map<String, JsonNode> properties,
-			String name, Long value) {
-		if (value == null) {
-			properties.remove(name);
-		} else {
-			properties.put(name, JsonNodeFactory.instance.numberNode(value));
-		}
-	}
-
-	public static void setFloatProperty(Map<String, JsonNode> properties, String name, Float value){
-	    if(value == null){
-	        properties.remove(name);
-	    }else{
-	        properties.put(name, JsonNodeFactory.instance.numberNode(value));
-	    }
-	}
-
-	public static Boolean getBooleanProperty(Map<String, JsonNode> properties,
-			String name) {
-		JsonNode value = properties.get(name);
-		if (value != null) {
-			return value.asBoolean();
-		}
-		return false;
-	}
-
-	public static void setBooleanProperty(Map<String, JsonNode> properties,
-			String name, Boolean value) {
-		if (value == null) {
-			properties.remove(name);
-		} else {
-			properties.put(name, JsonNodeFactory.instance.booleanNode(value));
-		}
-	}
-
-	public static UUID getUUIDProperty(Map<String, JsonNode> properties,
-			String name) {
-		JsonNode value = properties.get(name);
-		if (value != null) {
-			UUID uuid = null;
-			try {
-				uuid = UUID.fromString(value.asText());
-			} catch (Exception e) {
-			}
-			return uuid;
-		}
-		return null;
-	}
-
-	public static void setUUIDProperty(Map<String, JsonNode> properties,
-			String name, UUID value) {
-		if (value == null) {
-			properties.remove(name);
-		} else {
-			properties.put(name,
-					JsonNodeFactory.instance.textNode(value.toString()));
-		}
-	}
-
-	public static String toJsonString(Object obj) {
-		try {
-			return mapper.writeValueAsString(obj);
-		} catch (JsonGenerationException e) {
-			throw new ClientException("Unable to generate json", e);
-		} catch (JsonMappingException e) {
-		    throw new ClientException("Unable to map json", e);
-		} catch (IOException e) {
-		    throw new ClientException("IO error", e);
-		}
-	}
-
-	public static <T> T parse(String json, Class<T> c) {
-		try {
-			return mapper.readValue(json, c);
-		} catch (JsonGenerationException e) {
-            throw new ClientException("Unable to generate json", e);
-        } catch (JsonMappingException e) {
-            throw new ClientException("Unable to map json", e);
-        } catch (IOException e) {
-            throw new ClientException("IO error", e);
+    @Nullable
+    public static String getStringProperty(@NotNull final Map<String, JsonNode> properties, @NotNull final String name) {
+        JsonNode value = properties.get(name);
+        if (value != null) {
+            return value.asText();
         }
-	}
+        return null;
+    }
 
-	public static JsonNode toJsonNode(Object obj) {
-		return mapper.convertValue(obj, JsonNode.class);
-	}
-
-	public static <T> T fromJsonNode(JsonNode json, Class<T> c) {
-		try {
-			JsonParser jp = json.traverse();
-			return mapper.readValue(jp, c);
-		} catch (JsonGenerationException e) {
-            throw new ClientException("Unable to generate json", e);
-        } catch (JsonMappingException e) {
-            throw new ClientException("Unable to map json", e);
-        } catch (IOException e) {
-            throw new ClientException("IO error", e);
+    @NotNull
+    public static ArrayList<Object> convertToArrayList(@NotNull final ArrayNode arrayNode) {
+        ArrayList<Object> arrayList = new ArrayList<>();
+        Iterator<JsonNode> iterator = arrayNode.elements();
+        while( iterator.hasNext() ) {
+            arrayList.add(iterator.next());
         }
-	}
+        return arrayList;
+    }
 
-	public static <T> T getObjectProperty(Map<String, JsonNode> properties,
-			String name, Class<T> c) {
-		JsonNode value = properties.get(name);
-		if (value != null) {
-			return fromJsonNode(value, c);
-		}
-		return null;
-	}
+    @NotNull
+    public static String toJsonString(@NotNull final Object obj) {
+        try {
+            return mapper.writeValueAsString(obj);
+        } catch (JsonGenerationException e) {
+            throw new UsergridException("Unable to generate json", e);
+        } catch (JsonMappingException e) {
+            throw new UsergridException("Unable to map json", e);
+        } catch (IOException e) {
+            throw new UsergridException("IO error", e);
+        }
+    }
 
-	public static void setObjectProperty(Map<String, JsonNode> properties,
-			String name, Object value) {
-		if (value == null) {
-			properties.remove(name);
-		} else {
-			properties.put(name,
-					JsonNodeFactory.instance.textNode(value.toString()));
-		}
-	}
+    @NotNull
+    public static String toPrettyJsonString(@NotNull final Object obj) {
+        try {
+            return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
+        } catch (JsonGenerationException e) {
+            throw new UsergridException("Unable to generate json", e);
+        } catch (JsonMappingException e) {
+            throw new UsergridException("Unable to map json", e);
+        } catch (IOException e) {
+            throw new UsergridException("IO error", e);
+        }
+    }
 
+    @NotNull
+    public static JsonNode toJsonNode(@NotNull final Object obj) {
+        return mapper.convertValue(obj, JsonNode.class);
+    }
+
+    @NotNull
+    public static Map toMap(@NotNull final Object obj) {
+        return mapper.convertValue(obj,Map.class);
+    }
+
+    @NotNull
+    public static <T> T fromJsonNode(@NotNull final JsonNode json, @NotNull final Class<T> c) {
+        try {
+            JsonParser jp = json.traverse();
+            return mapper.readValue(jp, c);
+        } catch (JsonGenerationException e) {
+            throw new UsergridException("Unable to generate json", e);
+        } catch (JsonMappingException e) {
+            throw new UsergridException("Unable to map json", e);
+        } catch (IOException e) {
+            throw new UsergridException("IO error", e);
+        }
+    }
+
+    public static void setObjectProperty(@NotNull final Map<String, JsonNode> properties, @NotNull final String name, @Nullable final ObjectNode value) {
+        if (value == null) {
+            properties.remove(name);
+        } else {
+            properties.put(name, value);
+        }
+    }
+
+    @Nullable
+    @SuppressWarnings("unchecked")
+    public static <T> T getProperty(@NotNull final Map<String, JsonNode> properties, @NotNull final String name) {
+        JsonNode value = properties.get(name);
+        if( value == null ) {
+            return null;
+        } else if (value instanceof TextNode) {
+            return (T) value.asText();
+        } else if (value instanceof LongNode) {
+            Long valueLong = value.asLong();
+            return (T) valueLong;
+        } else if (value instanceof BooleanNode) {
+            Boolean valueBoolean = value.asBoolean();
+            return (T) valueBoolean;
+        } else if (value instanceof IntNode) {
+            Integer valueInteger = value.asInt();
+            return (T) valueInteger;
+        } else if (value instanceof FloatNode) {
+            return (T) Float.valueOf(value.toString());
+        } else {
+            return (T) value;
+        }
+    }
 }
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/MapUtils.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/MapUtils.java
index dd128eb..cbf6d51 100644
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/MapUtils.java
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/MapUtils.java
@@ -16,24 +16,21 @@
  */
 package org.apache.usergrid.java.client.utils;
 
+import org.jetbrains.annotations.NotNull;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class MapUtils {
+@SuppressWarnings("unused")
+public final class MapUtils {
 
-	public static <T> Map<String, T> newMapWithoutKeys(Map<String, T> map,
-			List<String> keys) {
-		Map<String, T> newMap = null;
-		if (map != null) {
-			newMap = new HashMap<String, T>(map);
-		} else {
-			newMap = new HashMap<String, T>();
-		}
-		for (String key : keys) {
-			newMap.remove(key);
-		}
-		return newMap;
-	}
-
+    @NotNull
+    public static <T> Map<String, T> newMapWithoutKeys(@NotNull  final Map<String, T> map, @NotNull final List<String> keys) {
+        Map<String, T> newMap = new HashMap<>();
+        for (String key : keys) {
+            newMap.remove(key);
+        }
+        return newMap;
+    }
 }
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/ObjectUtils.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/ObjectUtils.java
index 465845a..1d05405 100644
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/ObjectUtils.java
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/ObjectUtils.java
@@ -16,21 +16,23 @@
  */
 package org.apache.usergrid.java.client.utils;
 
+import org.jetbrains.annotations.Nullable;
+
 import java.util.Map;
 
-public class ObjectUtils {
+public final class ObjectUtils {
 
-	public static boolean isEmpty(Object s) {
-		if (s == null) {
-			return true;
-		}
-		if ((s instanceof String) && (((String) s).trim().length() == 0)) {
-			return true;
-		}
-		if (s instanceof Map) {
-			return ((Map<?, ?>) s).isEmpty();
-		}
-		return false;
-	}
+    public static boolean isEmpty(@Nullable final Object s) {
+        if (s == null) {
+            return true;
+        }
+        if ((s instanceof String) && (((String) s).trim().length() == 0)) {
+            return true;
+        }
+        if (s instanceof Map) {
+            return ((Map<?, ?>) s).isEmpty();
+        }
+        return false;
+    }
 
 }
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/UrlUtils.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/UrlUtils.java
deleted file mode 100644
index bf2a2b3..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/UrlUtils.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.java.client.utils;
-
-import static java.net.URLEncoder.encode;
-import static org.apache.usergrid.java.client.utils.ObjectUtils.isEmpty;
-
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.usergrid.java.client.exception.ClientException;
-
-public class UrlUtils {
-
-
-    public static URL url(String s) {
-        try {
-            return new URL(s);
-        } catch (MalformedURLException e) {
-            throw new ClientException("Incorrect URL format", e);
-        }
-    }
-
-    public static URL url(URL u, String s) {
-        try {
-            return new URL(u, s);
-        } catch (MalformedURLException e) {
-            throw new ClientException("Incorrect URL format", e);
-        }
-    }
-
-    public static String path(Object... segments) {
-        String path = "";
-        boolean first = true;
-        for (Object segment : segments) {
-            if (segment instanceof Object[]) {
-                segment = path((Object[]) segment);
-            }
-            if (!isEmpty(segment)) {
-                if (first) {
-                    path = segment.toString();
-                    first = false;
-                } else {
-                    if (!path.endsWith("/")) {
-                        path += "/";
-                    }
-                    path += segment.toString();
-                }
-            }
-        }
-        return path;
-    }
-
-    @SuppressWarnings("rawtypes")
-    public static String encodeParams(Map<String, Object> params) {
-        if (params == null) {
-            return "";
-        }
-        boolean first = true;
-        StringBuilder results = new StringBuilder();
-        for (Entry<String, Object> entry : params.entrySet()) {
-            if (entry.getValue() instanceof List) {
-                for (Object o : (List) entry.getValue()) {
-                    if (!isEmpty(o)) {
-                        if (!first) {
-                            results.append('&');
-                        }
-                        first = false;
-                        results.append(entry.getKey());
-                        results.append("=");
-                        try {
-                            results.append(encode(o.toString(), "UTF-8"));
-                        } catch (UnsupportedEncodingException e) {
-                            throw new ClientException("Unknown encoding", e);
-                        }
-                    }
-                }
-            } else if (!isEmpty(entry.getValue())) {
-                if (!first) {
-                    results.append('&');
-                }
-                first = false;
-                results.append(entry.getKey());
-                results.append("=");
-                try {
-                    results.append(encode(entry.getValue().toString(), "UTF-8"));
-                } catch (UnsupportedEncodingException e) {
-                    throw new ClientException("Unsupported string encoding", e);
-                }
-            }
-        }
-        return results.toString();
-    }
-
-    public static String addQueryParams(String url, Map<String, Object> params) {
-        if (params == null) {
-            return url;
-        }
-        if (!url.contains("?")) {
-            url += "?";
-        }
-        url += encodeParams(params);
-        return url;
-    }
-
-}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/UsergridEntityDeserializer.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/UsergridEntityDeserializer.java
new file mode 100644
index 0000000..5daeace
--- /dev/null
+++ b/sdks/java/src/main/java/org/apache/usergrid/java/client/utils/UsergridEntityDeserializer.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.java.client.utils;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.IOException;
+
+public final class UsergridEntityDeserializer extends JsonDeserializer<UsergridEntity> {
+
+    @NotNull private static final ObjectMapper objectMapper = new ObjectMapper();
+
+    @NotNull
+    public UsergridEntity deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException {
+        UsergridEntity entity = UsergridEntityDeserializer.objectMapper.readValue(jsonParser,UsergridEntity.class);
+        Class<? extends UsergridEntity> entitySubClass = UsergridEntity.customSubclassForType(entity.getType());
+        if( entitySubClass != null ) {
+            entity = JsonUtils.mapper.convertValue(entity,entitySubClass);
+        }
+        return entity;
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/ClientAuthFallBackTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/ClientAuthFallBackTestCase.java
new file mode 100644
index 0000000..944aaef
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/ClientAuthFallBackTestCase.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.*;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertTrue;
+
+public class ClientAuthFallBackTestCase {
+
+    private static UsergridQuery usersQuery = new UsergridQuery("users").desc("created");
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        Usergrid.authenticateApp(new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET));
+
+        String[] segments = {"roles","guest","permissions"};
+        Map<String, Object> params = new HashMap<>();
+        params.put("permission","get,post,put,delete:/**");
+        UsergridRequest request = new UsergridRequest(UsergridEnums.UsergridHttpMethod.DELETE, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, Usergrid.clientAppUrl(), params, null, Usergrid.authForRequests(), segments);
+        Usergrid.sendRequest(request);
+    }
+
+    @After
+    public void after() {
+        Usergrid.setAuthMode(UsergridEnums.UsergridAuthMode.APP);
+        String[] segments = {"roles","guest","permissions"};
+        Map<String, Object> params = new HashMap<>();
+        params.put("permission","get,post,put,delete:/**");
+        UsergridRequest request = new UsergridRequest(UsergridEnums.UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, Usergrid.clientAppUrl(), params, null, Usergrid.authForRequests(), segments);
+        Usergrid.sendRequest(request);
+        Usergrid.reset();
+    }
+
+    @Test
+    public void authFallBackNONETest() {
+        Usergrid.setAuthMode(UsergridEnums.UsergridAuthMode.NONE);
+        UsergridResponse resp = Usergrid.GET(usersQuery);
+        assertTrue("The returned response should have error", resp.getResponseError() != null);
+    }
+
+    @Test
+    public void authFallBackAPPTest() {
+        Usergrid.setAuthMode(UsergridEnums.UsergridAuthMode.APP);
+        UsergridResponse resp = Usergrid.GET(usersQuery);
+        assertTrue("The returned response should not have error", resp.getResponseError() == null);
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/ClientAuthTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/ClientAuthTestCase.java
new file mode 100644
index 0000000..79e1bbc
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/ClientAuthTestCase.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.UsergridEnums.*;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.model.UsergridUser;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class ClientAuthTestCase {
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL);
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void clientAuth_APP() {
+        Usergrid.setAuthMode(UsergridAuthMode.APP);
+        UsergridAppAuth appAuth = new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET);
+        UsergridResponse response = Usergrid.authenticateApp(appAuth);
+        assertTrue("response status is OK", response.ok());
+        assertNull("no error thrown", response.getResponseError());
+        assertTrue("appAuth.isValidToken should be true", appAuth.isValidToken());
+        assertNotNull("should have a valid token", appAuth.getAccessToken());
+        assertNotNull("should have an expiry", appAuth.getExpiry());
+        assertEquals("client.appAuth.token should be set to the token returned from Usergrid", Usergrid.getAppAuth(), appAuth);
+        assertTrue("should have a token that is not empty", appAuth.getAccessToken().length() > 0);
+        assertTrue("client.appAuth.expiry should be set to a future date", appAuth.getExpiry() > System.currentTimeMillis());
+    }
+
+    @Test
+    public void clientAuth_USER() {
+        Usergrid.setAuthMode(UsergridAuthMode.USER);
+        UsergridUserAuth userAuth = new UsergridUserAuth(SDKTestConfiguration.APP_UserName, SDKTestConfiguration.APP_Password);
+        UsergridResponse response = Usergrid.authenticateUser(userAuth);
+        assertTrue("response status is OK", response.ok());
+        assertNull("no error thrown", response.getResponseError());
+        assertTrue("appAuth.isValidToken should be true", userAuth.isValidToken());
+        assertNotNull("should have a token", userAuth.getAccessToken());
+        assertNotNull("should have an expiry", userAuth.getExpiry());
+
+        UsergridUser currentUser = Usergrid.getCurrentUser();
+        assertNotNull("client.currentUser should not be null", currentUser);
+        assertNotNull("client.currentUser().getUserAuth() should not be null", currentUser.getUserAuth());
+        assertEquals("client.currentUser().userAuth should be the same as userAuth", currentUser.getUserAuth(), userAuth);
+        assertTrue("should have a token that is not empty", userAuth.getAccessToken().length() > 0);
+        assertTrue("client.currentUser().userAuth.getExpiry() should be set to a future date", userAuth.getExpiry() > System.currentTimeMillis());
+        assertEquals("client.authForRequests() should be the same as userAuth", Usergrid.authForRequests(), userAuth);
+    }
+
+    @Test
+    public void clientAuth_NONE() {
+        Usergrid.setAuthMode(UsergridAuthMode.NONE);
+        UsergridUserAuth userAuth = new UsergridUserAuth(SDKTestConfiguration.APP_UserName, SDKTestConfiguration.APP_Password);
+        Usergrid.authenticateUser(userAuth);
+        assertNull("no auth should be returned from client.authForRequests", Usergrid.authForRequests());
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/ClientConnectionsTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/ClientConnectionsTestCase.java
new file mode 100644
index 0000000..72b88dd
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/ClientConnectionsTestCase.java
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.UsergridEnums.UsergridDirection;
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class ClientConnectionsTestCase {
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        UsergridAppAuth appAuth = new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET);
+        Usergrid.authenticateApp(appAuth);
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void clientConnect() {
+        String collectionName = "testClientConnection" + System.currentTimeMillis();
+
+        UsergridEntity entityOne = new UsergridEntity(collectionName,"john");
+        entityOne.putProperty("place","San Jose");
+        entityOne.save();
+        assertNotNull(entityOne.getUuid());
+
+        UsergridEntity entityTwo = new UsergridEntity(collectionName,"amici");
+        entityOne.putProperty("place","San Jose");
+        entityTwo.save();
+        assertNotNull(entityTwo.getUuid());
+
+        //should connect entities by passing UsergridEntity objects as parameters
+        Usergrid.connect(entityOne, "likes", entityTwo);
+
+        UsergridEntity responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityOne, "likes").first();
+        assertNotNull(responseEntity);
+        assertEquals("both entities name should be same", entityTwo.getName(),responseEntity.getName());
+        assertEquals("both entities uuid should be same", entityTwo.getUuid(),responseEntity.getUuid());
+
+        //should connect entities by passing a source UsergridEntity object and a target uuid.
+        Usergrid.connect(entityOne.getType(), entityOne.getUuid(), "visited", entityTwo.getUuid());
+
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityOne, "visited").first();
+        assertNotNull(responseEntity);
+        assertEquals("both entities name should be same", entityTwo.getName(),responseEntity.getName());
+        assertEquals("both entities uuid should be same", entityTwo.getUuid(),responseEntity.getUuid());
+
+        //should connect entities by passing source type, source uuid, and target uuid as parameters
+        Usergrid.connect(entityTwo.getType(), entityTwo.getUuid(), "visitor", entityOne.getUuid());
+
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityTwo, "visitor").first();
+        assertNotNull(responseEntity);
+        assertEquals("both entities name should be same", entityOne.getName(),responseEntity.getName());
+        assertEquals("both entities uuid should be same", entityOne.getUuid(),responseEntity.getUuid());
+
+        //should connect entities by passing source type, source name, target type, and target name as parameters
+        assertNotNull(entityOne.getName());
+        assertNotNull(entityTwo.getName());
+        Usergrid.connect(entityTwo.getType(), entityTwo.getName(), "welcomed", entityOne.getType(), entityOne.getName());
+
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityTwo, "welcomed").first();
+        assertNotNull(responseEntity);
+        assertEquals("both entities name should be same", entityOne.getName(),responseEntity.getName());
+        assertEquals("both entities uuid should be same", entityOne.getUuid(),responseEntity.getUuid());
+
+        //should connect entities by passing source type, source name, target type, and target name as parameters
+        Usergrid.connect(entityTwo.getType(), entityTwo.getName(), "invalidLink", "invalidName");
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityTwo, "invalidLink").first();
+        assertNull("response entity should be null.", responseEntity);
+    }
+
+    @Test
+    public void clientGetConnect() {
+        String collectionName = "testClientGetConnection" + System.currentTimeMillis();
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entityOne = new UsergridEntity(collectionName, "john");
+        entityOne.putProperty("place","San Jose");
+        entityOne.save();
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entityTwo = new UsergridEntity(collectionName, "amici");
+        entityTwo.putProperty("place","San Jose");
+        entityTwo.save();
+
+        //should connect entities by passing UsergridEntity objects as parameters
+        Usergrid.connect(entityOne, "likes", entityTwo);
+        Usergrid.connect(entityOne, "visited", entityTwo);
+
+        UsergridEntity responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityOne, "likes").first();
+        assertNotNull(responseEntity);
+        assertEquals("both entities name should be same", entityTwo.getName(),responseEntity.getName());
+        assertEquals("both entities uuid should be same", entityTwo.getUuid(),responseEntity.getUuid());
+
+        responseEntity = Usergrid.getConnections(UsergridDirection.IN, entityTwo, "visited").first();
+        assertNotNull(responseEntity);
+        assertEquals("both entities name should be same", entityOne.getName(),responseEntity.getName());
+        assertEquals("both entities uuid should be same", entityOne.getUuid(),responseEntity.getUuid());
+
+    }
+
+    @Test
+    public void clientDisConnect() {
+        String collectionName = "testClientGetConnection" + System.currentTimeMillis();
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entityOne = new UsergridEntity(collectionName,"john");
+        entityOne.putProperty("place","San Jose");
+        entityOne.save();
+        assertNotNull(entityOne.getName());
+        assertNotNull(entityOne.getUuid());
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entityTwo = new UsergridEntity(collectionName, "amici");
+        entityTwo.putProperty("place","San Jose");
+        entityTwo.save();
+        assertNotNull(entityTwo.getName());
+        assertNotNull(entityTwo.getUuid());
+
+        //should connect entities by passing UsergridEntity objects as parameters
+        Usergrid.connect(entityOne, "likes", entityTwo);
+        Usergrid.connect(entityOne, "visited", entityTwo);
+        Usergrid.connect(entityOne, "twice", entityTwo);
+        Usergrid.connect(entityOne, "thrice", entityTwo);
+
+        //should disConnect entities by passing UsergridEntity objects as parameters
+        Usergrid.disconnect(entityOne, "likes", entityTwo);
+        UsergridEntity responseEntity = Usergrid.getConnections(UsergridDirection.IN, entityTwo, "likes").first();
+        assertNull("responseEntity should be null", responseEntity);
+
+        //should disConnect entities by passing source type, source uuid, and target uuid as parameters
+        Usergrid.disconnect(entityOne.getType(), entityOne.getUuid(), "visited", entityTwo.getUuid());
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityOne, "visited").first();
+        assertNull("responseEntity should be null", responseEntity);
+
+        //should disConnect entities by passing source type, source name, target type, and target name as parameters
+        Usergrid.disconnect(entityOne.getType(), entityOne.getName(), "twice", entityTwo.getType(), entityTwo.getName());
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityOne, "twice").first();
+        assertNull("responseEntity should be null", responseEntity);
+
+        //should fail to disConnect entities when specifying target name without type
+        Usergrid.disconnect(entityTwo.getType(), entityTwo.getName(), "thrice", entityOne.getName());
+        responseEntity = Usergrid.getConnections(UsergridDirection.OUT, entityTwo, "thrice").first();
+        assertNull("both entities name should be same",responseEntity);
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/ClientRestTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/ClientRestTestCase.java
new file mode 100644
index 0000000..b01a167
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/ClientRestTestCase.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.*;
+
+public class ClientRestTestCase {
+
+    final String collectionName = "testClientConnection" + System.currentTimeMillis();
+
+    @Before
+    public void before()  {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        UsergridAppAuth appAuth = new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET);
+        Usergrid.authenticateApp(appAuth);
+        createCollectionAndEntity();
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    public void createCollectionAndEntity()  {
+        UsergridEntity entityOne = new UsergridEntity(collectionName,"john");
+        entityOne.putProperty("place", "San Jose");
+        entityOne.save();
+
+        UsergridEntity entityTwo = new UsergridEntity(collectionName,"amici");
+        entityTwo.putProperty("place", "San Jose");
+        entityTwo.save();
+
+        assertNotNull(entityOne.getUuid());
+        assertNotNull(entityTwo.getUuid());
+
+        Usergrid.connect(entityOne, "likes", entityTwo);
+        Usergrid.connect(entityOne.getType(), entityOne.getUuid(), "visited", entityTwo.getUuid());
+    }
+
+    @Test
+    public void clientGET() {
+        // Retrieve the response.
+        UsergridResponse response = Usergrid.GET(collectionName, "john");
+        assertTrue("response should be ok", response.ok());
+        assertNull("no error thrown", response.getResponseError());
+
+        assertNotNull(response.getEntities());
+        assertTrue("response entities is an Array", response.getEntities().getClass() == ArrayList.class);
+
+        // response.first should exist and have a valid uuid
+        UsergridEntity firstEntity = response.first();
+        assertNotNull(firstEntity);
+        assertNotNull("first entity is not null and has uuid", firstEntity.getUuid());
+
+        // response.entity should exist, equals the first entity, and have a valid uuid
+        UsergridEntity responseEntity = response.entity();
+        assertNotNull(responseEntity);
+        assertEquals(firstEntity, responseEntity);
+        assertNotNull("entity is not null and has uuid", responseEntity.getUuid());
+
+        // response.last should exist and have a valid uuid
+        UsergridEntity lastEntity = response.last();
+        assertNotNull(lastEntity);
+        assertNotNull("last entity is not null and has uuid", lastEntity.getUuid());
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/EntityTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/EntityTestCase.java
new file mode 100644
index 0000000..42c3054
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/EntityTestCase.java
@@ -0,0 +1,676 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.TextNode;
+import org.apache.usergrid.java.client.UsergridEnums.UsergridDirection;
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.*;
+
+public class EntityTestCase {
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        Usergrid.authenticateApp(new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET));
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void testEntityCreationSuccess() {
+        String collectionName = "ect" + System.currentTimeMillis();
+        String entityName = "testEntity1";
+
+        HashMap<String,JsonNode> map = new HashMap<>();
+        map.put("name",new TextNode(entityName));
+        map.put("color",new TextNode("red"));
+        map.put("shape",new TextNode("square"));
+
+        UsergridEntity entity = new UsergridEntity(collectionName,null,map);
+        UsergridResponse response = entity.save();
+        assertNull(response.getResponseError());
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The returned entity is null!", eLookUp);
+        assertEquals("entities has the correct type", eLookUp.getType(),collectionName);
+        assertEquals("entities has the correct name", eLookUp.getName(),entityName);
+        assertEquals("entities has the correct color", eLookUp.getStringProperty("color"),"red");
+        assertEquals("entities has the correct shape", eLookUp.getStringProperty("shape"),"square");
+    }
+
+    @Test
+    public void testDuplicateEntityNameFailure() {
+        String collectionName = "testDuplicateEntityNameFailure" + System.currentTimeMillis();
+
+        UsergridEntity entity = new UsergridEntity(collectionName,"test3");
+        UsergridResponse response = Usergrid.POST(entity);
+        assertNull("First entity create should have succeeded.", response.getResponseError());
+
+        response = Usergrid.POST(entity);
+        assertNotNull("Second entity create should not succeed!", response.getResponseError());
+    }
+
+    @Test
+    public void testEntityLookupByName() {
+        String collectionName = "testEntityLookupByName" + System.currentTimeMillis();
+        String entityName = "testEntity4";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+
+        UsergridEntity eLookup = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The returned entity is null!", eLookup);
+        assertEquals("The returned entity does not have the same UUID", entity.getUuid(),eLookup.getUuid());
+    }
+
+    @Test
+    public void testEntityLookupByUUID() {
+        String collectionName = "testEntityLookupByUUID" + System.currentTimeMillis();
+        String entityName = "testEntity5";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+        assertNotNull(entity.getUuid());
+
+        UsergridEntity eLookup = Usergrid.GET(collectionName, entity.getUuid()).first();
+        assertNotNull("The returned entity is null!", eLookup);
+        assertEquals("The returned entity does not have the same UUID", entity.getUuid(),eLookup.getUuid());
+    }
+
+    @Test
+    public void testEntityLookupByQuery() {
+        String collectionName = "testEntityLookupByQuery" + System.currentTimeMillis();
+        String entityName = "testEntity6";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.putProperty("color","red");
+        entity.putProperty("shape","square");
+        entity.save();
+
+        SDKTestUtils.indexSleep();
+
+        UsergridQuery query = new UsergridQuery(collectionName).eq("color", "red");
+        UsergridEntity eLookup = Usergrid.GET(query).first();
+
+        assertNotNull("The entity was not returned on lookup", eLookup);
+        assertEquals("The returned entity does not have the same UUID", entity.getUuid(),eLookup.getUuid());
+
+        query = new UsergridQuery(collectionName).eq("name", entityName);
+        eLookup = Usergrid.GET(query).first();
+
+        assertNotNull("The entity was not returned on lookup", eLookup);
+        assertEquals("The returned entity does not have the same UUID", entity.getUuid(),eLookup.getUuid());
+
+        query = new UsergridQuery(collectionName).eq("shape", "square");
+        eLookup = Usergrid.GET(query).first();
+
+        assertNotNull("The entity was not returned on lookup", eLookup);
+        assertEquals("The returned entity does not have the same UUID", entity.getUuid(),eLookup.getUuid());
+
+        query = new UsergridQuery(collectionName).eq("shape", "circle");
+        eLookup = Usergrid.GET(query).first();
+
+        assertNull("The entity was not expected to be returned on lookup", eLookup);
+    }
+
+    @Test
+    public void testEntityUpdate() {
+        String collectionName = "testEntityLookupByUUID" + System.currentTimeMillis();
+        String entityName = "testEntity7";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.putProperty("color","red");
+        entity.putProperty("shape","square");
+        entity.putProperty("orientation","up");
+        entity.save();
+
+        SDKTestUtils.sleep(1000);
+
+        UsergridQuery query = new UsergridQuery(collectionName).eq("orientation", "up");
+        UsergridEntity eLookup = Usergrid.GET(query).first();
+        assertNotNull(eLookup);
+
+        assertEquals("The returned entity does not have the same UUID when querying by field", entity.getUuid(),eLookup.getUuid());
+
+        entity.putProperty("orientation", "down");
+        entity.save();
+        assertNotNull(entity.getUuid());
+
+        eLookup = Usergrid.GET(collectionName, entity.getUuid()).first();
+        assertNotNull(eLookup);
+
+        assertEquals("The returned entity does not have the same UUID", entity.getUuid(),eLookup.getUuid());
+        assertEquals("The field was not updated!", eLookup.getStringProperty("orientation"),"down");
+
+        SDKTestUtils.sleep(1000);
+
+        query = new UsergridQuery(collectionName).eq("orientation", "up");
+        eLookup = Usergrid.GET(query).first();
+
+        assertNull("The entity was returned for old value!", eLookup);
+    }
+
+    @Test
+    public void testEntityDelete() {
+        String collectionName = "testEntityDelete" + System.currentTimeMillis();
+        String entityName = "testEntity8";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.putProperty("color","red");
+        entity.putProperty("shape","square");
+        entity.putProperty("orientation","up");
+        entity.save();
+
+        SDKTestUtils.indexSleep();
+
+        assertNotNull(entity.getUuid());
+        assertNotNull(entity.getName());
+
+        UsergridQuery query = new UsergridQuery(collectionName).eq("orientation", "up");
+        UsergridEntity eLookup = Usergrid.GET(query).first();
+
+        assertNotNull("The returned entity was null!", eLookup);
+        assertEquals("The returned entity does not have the same UUID when querying by field", entity.getUuid(),eLookup.getUuid());
+
+        Usergrid.DELETE(entity);
+
+        eLookup = Usergrid.GET(collectionName, entity.getUuid()).first();
+        assertNull("The entity was not expected to be returned by UUID", eLookup);
+
+        eLookup = Usergrid.GET(collectionName, entity.getName()).first();
+        assertNull("The entity was not expected to be returned by getName", eLookup);
+
+        query = new UsergridQuery(collectionName).eq("color", "red");
+        eLookup = Usergrid.GET(query).first();
+        assertNull("The entity was not expected to be returned", eLookup);
+
+        query = new UsergridQuery(collectionName).eq("shape", "square");
+        eLookup = Usergrid.GET(query).first();
+        assertNull("The entity was not expected to be returned", eLookup);
+
+        query = new UsergridQuery(collectionName).eq("orientation", "up");
+        eLookup = Usergrid.GET(query).first();
+        assertNull("The entity was not expected to be returned", eLookup);
+    }
+
+    @Test
+    public void testEntityPutPropertyAndSave() {
+        String collectionName = "testEntityPutProperty" + System.currentTimeMillis();
+        String entityName = "testEntity9";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.putProperty("color","red");
+        entity.putProperty("shape","square");
+        entity.putProperty("orientation","up");
+        entity.putProperty("sides", 4);
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+
+        //Check if the property was added correctly
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertEquals("The entity putProperty() was successful ", eLookUp.getStringProperty("orientation"),"up");
+        assertEquals("The entity putProperty() was successful ", eLookUp.getIntegerProperty("sides"), new Integer(4));
+
+        //Overwrite the property if it exists.
+        entity.putProperty("orientation", "horizontal");
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The returned entity was null!", eLookUp);
+        assertEquals("The entity putProperty() was successful ", eLookUp.getStringProperty("orientation"),"horizontal");
+
+        //should not be able to set the name key (name is immutable)
+        entity.putProperty("name","entityNew");
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The returned entity was null!", eLookUp);
+        assertEquals("The entity putProperty() was successful ", eLookUp.getName(),"testEntity9");
+    }
+
+    @Test
+    public void testEntityPutProperties() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityName = "testEntity9";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.putProperty("color","black");
+        entity.putProperty("orientation","up");
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertEquals("The entity putProperty() was successful ", eLookUp.getStringProperty("orientation"),"up");
+        assertEquals("overwrite existing property", eLookUp.getStringProperty("color"),"black");
+    }
+
+    @Test
+    public void testEntityRemovePropertiesAndSave() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+
+        Map<String, String> fields = new HashMap<>(3);
+        fields.put("color", "red");
+
+        String entityName = "testEntity9";
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entity = SDKTestUtils.createEntity(collectionName, entityName, fields);
+        Map<String, Object> properties = new HashMap<>();
+        properties.put("shape", "square");
+        properties.put("orientation", "up");
+        properties.put("color", "black");
+        entity.putProperties(properties);
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, "testEntity9").first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        String[] removeProperties = {"shape", "color"};
+        entity.removeProperties(Arrays.asList(removeProperties));
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, "testEntity9").first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertTrue("overwrite existing property", eLookUp.getStringProperty("color") == null);
+        assertTrue("overwrite existing property", eLookUp.getStringProperty("shape") == null);
+
+    }
+
+    @Test
+    public void testEntityRemoveProperty() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+
+        Map<String, String> fields = new HashMap<>(3);
+        fields.put("color", "red");
+
+        String entityName = "testEntity11";
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entity = SDKTestUtils.createEntity(collectionName, entityName, fields);
+        Map<String, Object> properties = new HashMap<>();
+        properties.put("shape", "square");
+        properties.put("orientation", "up");
+        properties.put("color", "black");
+        entity.putProperties(properties);
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, "testEntity11").first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        entity.removeProperty("color");
+        entity.removeProperty("shape");
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, "testEntity11").first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertTrue("overwrite existing property", eLookUp.getStringProperty("color") == null);
+        assertTrue("overwrite existing property", eLookUp.getStringProperty("shape") == null);
+
+    }
+
+    @Test
+    public void testEntityAppendInArray() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityName = "testEntity1";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+
+        ArrayList<Object> lenArr = new ArrayList<>();
+        lenArr.add(1);
+        lenArr.add(2);
+        lenArr.add(3);
+        lenArr.add(4);
+        entity.insert("lenArray", lenArr);
+        entity.save();
+
+        lenArr = new ArrayList<>();
+        lenArr.add(6);
+        lenArr.add(7);
+        entity.append("lenArray", lenArr);
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        ArrayNode toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add(1).add(2).add(3).add(4).add(6).add(7);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("lenArray"),toCompare);
+    }
+
+    @Test
+    public void testEntityPrependInArray() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityName = "testEntity1";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+
+        ArrayList<Object> lenArr = new ArrayList<>();
+        lenArr.add(1);
+        lenArr.add(2);
+        lenArr.add(3);
+        lenArr.add(4);
+        entity.putProperty("lenArray", lenArr);
+        entity.save();
+
+        lenArr = new ArrayList<>();
+        lenArr.add(6);
+        lenArr.add(7);
+
+        entity.insert("lenArray", lenArr, 0);
+        entity.save();
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        ArrayNode toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add(6).add(7).add(1).add(2).add(3).add(4);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("lenArray"),toCompare);
+    }
+
+    @Test
+    public void testEntityPopInArray() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityName = "testEntity1";
+
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+
+        ArrayList<Object> lenArr = new ArrayList<>();
+        lenArr.add(1);
+        lenArr.add(2);
+        lenArr.add(3);
+        entity.putProperty("lenArray", lenArr);
+        entity.save();
+
+        // should remove the last value of an existing array
+        entity.pop("lenArray");
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        ArrayNode toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add(1).add(2);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("lenArray"),toCompare);
+
+        // value should remain unchanged if it is not an array
+        entity.putProperty("foo", "test1");
+        entity.save();
+
+        entity.pop("foo");
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertEquals("foo should equal test1.", eLookUp.getStringProperty("foo"), "test1");
+
+        //should gracefully handle empty arrays
+        ArrayList<Object> lenArr2 = new ArrayList<>();
+        entity.putProperty("foo", lenArr2);
+        entity.save();
+        entity.pop("foo");
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        toCompare = new ArrayNode(JsonNodeFactory.instance);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("foo"),toCompare);
+    }
+
+    @Test
+    public void testEntityShiftInArray() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityName = "testEntity1";
+
+        //should remove the last value of an existing array
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+
+        ArrayList<Object> lenArr = new ArrayList<>();
+        lenArr.add(1);
+        lenArr.add(2);
+        lenArr.add(3);
+        entity.putProperty("lenArray", lenArr);
+        entity.save();
+
+        entity.shift("lenArray");
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        ArrayNode toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add(2).add(3);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("lenArray"),toCompare);
+
+        //value should remain unchanged if it is not an array
+        entity.putProperty("foo", "test1");
+        entity.shift("foo");
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertEquals("The entity returned is not null.", eLookUp.getStringProperty("foo"), "test1");
+
+        //should gracefully handle empty arrays
+        ArrayList<Object> lenArr2 = new ArrayList<>();
+        entity.putProperty("foo", lenArr2);
+        entity.shift("foo");
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("foo"), new ArrayNode(JsonNodeFactory.instance));
+    }
+
+    @Test
+    public void testEntityInsertInArray() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityName = "testEntity1";
+
+        //should set properties for a given object, overwriting properties that exist and creating those that don\'t
+        UsergridEntity entity = new UsergridEntity(collectionName,entityName);
+        entity.save();
+
+        ArrayList<Object> lenArr = new ArrayList<>();
+        lenArr.add(1);
+        lenArr.add(2);
+        lenArr.add(3);
+        lenArr.add(4);
+        entity.putProperty("lenArray", lenArr);
+        entity.save();
+
+        ArrayList<Object> lenArr2 = new ArrayList<>();
+        lenArr2.add(6);
+        lenArr2.add(7);
+
+        entity.insert("lenArray", lenArr2, 6);
+        entity.save();
+
+        UsergridEntity eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        ArrayNode toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add(1).add(2).add(3).add(4).add(6).add(7);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("lenArray"),toCompare);
+
+        //should merge an array of values into an existing array at the specified index
+        lenArr = new ArrayList<>();
+        lenArr.add(1);
+        lenArr.add(2);
+        lenArr.add(3);
+        lenArr.add(4);
+
+        entity.putProperty("lenArray", lenArr);
+        entity.save();
+
+        lenArr2 = new ArrayList<>();
+        lenArr2.add(5);
+        lenArr2.add(6);
+        lenArr2.add(7);
+        lenArr2.add(8);
+
+        entity.insert("lenArray", lenArr2, 2);
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add(1).add(2).add(5).add(6).add(7).add(8).add(3).add(4);
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("lenArray"),toCompare);
+
+        //should convert an existing value into an array when inserting a second value
+        entity.putProperty("foo", "test");
+        entity.insert("foo", "test1", 1);
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add("test").add("test1");
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("foo"),toCompare);
+
+        //should create a new array when a property does not exist
+        entity.insert("foo1", "test2", 1);
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add("test2");
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("foo1"),toCompare);
+
+        //should gracefully handle index out of positive range
+        entity.putProperty("ArrayIndex", "test1");
+        entity.insert("ArrayIndex", "test2", 1000);
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add("test1").add("test2");
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("ArrayIndex"),toCompare);
+
+        //should gracefully handle index out of negative range
+        entity.insert("ArrayIndex", "test3", -1000);
+        entity.save();
+
+        eLookUp = Usergrid.GET(collectionName, entityName).first();
+        assertNotNull("The entity returned is not null.", eLookUp);
+
+        toCompare = new ArrayNode(JsonNodeFactory.instance);
+        toCompare.add("test3").add("test1").add("test2");
+        assertEquals("The two arrays should be equal.", eLookUp.getJsonNodeProperty("ArrayIndex"),toCompare);
+    }
+
+    @Test
+    public void testEntityConnectDisconnectGetConnections() {
+        String collectionName = "testEntityProperties" + System.currentTimeMillis();
+        String entityOneName = "testEntity1";
+        String entityTwoName = "testEntity2";
+
+        UsergridEntity entityOne = new UsergridEntity(collectionName,entityOneName);
+        entityOne.putProperty("color","red");
+        entityOne.putProperty("shape","square");
+        entityOne.save();
+
+        UsergridEntity entityTwo = new UsergridEntity(collectionName,entityTwoName);
+        entityTwo.putProperty("color","green");
+        entityTwo.putProperty("shape","circle");
+        entityTwo.save();
+
+        assertNotNull(entityOne.getUuid());
+        assertNotNull(entityTwo.getUuid());
+        assertNotNull(entityOne.getName());
+        assertNotNull(entityTwo.getName());
+        assertNotNull(entityOne.uuidOrName());
+        assertNotNull(entityTwo.uuidOrName());
+
+        //should connect entities by passing a target UsergridEntity object as a parameter
+        entityOne.connect("likes", entityTwo);
+        entityOne.save();
+
+        UsergridEntity eLookUpConnectedEntity = entityOne.getConnections(UsergridDirection.OUT, "likes").first();
+        assertNotNull("The connected entity returned is not null.", eLookUpConnectedEntity);
+
+        assertEquals("The entity name should be equals.", eLookUpConnectedEntity.getName(),entityTwoName);
+
+        eLookUpConnectedEntity = entityTwo.getConnections(UsergridDirection.IN, "likes").first();
+        assertNotNull("The connected entity returned is not null.", eLookUpConnectedEntity);
+        assertEquals("The entity name should be equals.", eLookUpConnectedEntity.getName(),entityOneName);
+
+        entityOne.disconnect("likes", entityTwo);
+        entityOne.save();
+
+        eLookUpConnectedEntity = entityTwo.getConnections(UsergridDirection.IN, "likes").first();
+        assertNull("The entity returned is not null.", eLookUpConnectedEntity);
+
+        //should connect entities by passing target uuid as a parameter
+        Usergrid.connect(entityOne.getType(),entityOne.getUuid(),"visited",entityTwo.getUuid());
+        entityOne.save();
+
+        eLookUpConnectedEntity = entityOne.getConnections(UsergridDirection.OUT, "visited").first();
+        assertNotNull("The connected entity returned is not null.", eLookUpConnectedEntity);
+        assertEquals("The entity name should be equals.", eLookUpConnectedEntity.getName(),entityTwoName);
+
+        Usergrid.disconnect(entityOne.getType(),entityOne.getUuid(),"visited",entityTwo.getUuid());
+        entityOne.save();
+
+        eLookUpConnectedEntity = entityOne.getConnections(UsergridDirection.OUT, "visited").first();
+        assertNull("The entity returned is not null.", eLookUpConnectedEntity);
+
+        //should connect entities by passing target type and name as parameters
+        Usergrid.connect(entityOne.getType(),entityOne.getUuid(),"revisit",entityTwo.getType(),entityTwo.getName());
+        entityOne.save();
+
+        eLookUpConnectedEntity = entityOne.getConnections(UsergridDirection.OUT, "revisit").first();
+        assertNotNull("The connected entity returned is not null.", eLookUpConnectedEntity);
+        assertEquals("The entity name should be equals.", eLookUpConnectedEntity.getName(),entityTwoName);
+
+        Usergrid.disconnect(entityOne.getType(),entityOne.getUuid(),"revisit",entityTwo.getType(),entityTwo.getName());
+        entityOne.save();
+
+        eLookUpConnectedEntity = entityOne.getConnections(UsergridDirection.OUT, "revisit").first();
+        assertNull("The entity returned is not null.", eLookUpConnectedEntity);
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/QueryTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/QueryTestCase.java
new file mode 100644
index 0000000..f013134
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/QueryTestCase.java
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.DoubleNode;
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.apache.usergrid.java.client.query.UsergridQuery;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.*;
+
+public class QueryTestCase {
+
+    public static final String COLLECTION = "shapes";
+
+    public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
+        double earthRadius = 6371000; //meters
+        double dLat = Math.toRadians(lat2 - lat1);
+        double dLng = Math.toRadians(lng2 - lng1);
+        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2);
+        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
+        return (float) (earthRadius * c);
+    }
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        Usergrid.authenticateApp(new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET));
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    /**
+     * Test a basic set of queries where there is inclusion and exclusion based on
+     * two fields
+     */
+    @Test
+    public void testBasicQuery() {
+
+        UsergridQuery qDelete = new UsergridQuery(COLLECTION);
+        Usergrid.DELETE(qDelete);
+
+        Map<String, UsergridEntity> entityMapByUUID = SDKTestUtils.createColorShapes(COLLECTION);
+        Map<String, UsergridEntity> entityMapByName = new HashMap<>(entityMapByUUID.size());
+
+        for (Map.Entry<String, UsergridEntity> uuidEntity : entityMapByUUID.entrySet()) {
+            entityMapByName.put(uuidEntity.getValue().getName(), uuidEntity.getValue());
+        }
+
+        SDKTestUtils.indexSleep();
+
+        Map<String, String> fields = new HashMap<>(7);
+        fields.put("red", "square");
+        fields.put("blue", "circle");
+        fields.put("yellow", "triangle");
+
+        for (Map.Entry<String, String> entry : fields.entrySet()) {
+            UsergridEntity targetEntity = entityMapByName.get(entry.getKey() + entry.getValue());
+
+            UsergridResponse response = Usergrid.GET(new UsergridQuery(COLLECTION).eq("color", entry.getKey()));
+            assertNotNull("entities returned should not be null.", response.getEntities());
+            assertTrue("query for " + entry.getKey() + " shape should return 1, not: " + response.getEntities().size(), response.getEntities().size() == 1);
+
+            UsergridEntity responseEntity = response.first();
+            assertNotNull("first entity should not be null.", responseEntity);
+            assertEquals("query for " + entry.getKey() + " shape should the right UUID", responseEntity.getUuid(),targetEntity.getUuid());
+        }
+        Usergrid.DELETE(qDelete);
+    }
+
+    /**
+     * Test that geolocation is working as expected with different ranges and radius
+     * also test that results are sorted ascending by distance from the specified point
+     */
+    @Test
+    public void testGeoQuery() {
+
+        String collectionName = "sdkTestLocation";
+
+        UsergridQuery deleteQuery = new UsergridQuery(collectionName);
+        Usergrid.DELETE(deleteQuery);
+
+        ArrayList<UsergridEntity> entities = new ArrayList<>();
+        UsergridEntity apigeeOffice = new UsergridEntity(collectionName,"Apigee Office");
+        apigeeOffice.setLocation(37.334115, -121.894340);
+        entities.add(apigeeOffice);
+
+        UsergridEntity amicis = new UsergridEntity(collectionName,"Amicis");
+        amicis.setLocation(37.335616, -121.894168);
+        entities.add(amicis);
+
+        UsergridEntity sanPedroMarket = new UsergridEntity(collectionName,"SanPedroMarket");
+        sanPedroMarket.setLocation(37.336499, -121.894356);
+        entities.add(sanPedroMarket);
+
+        UsergridEntity saintJamesPark = new UsergridEntity(collectionName,"saintJamesPark");
+        saintJamesPark.setLocation(37.339079, -121.891422);
+        entities.add(saintJamesPark);
+
+        UsergridEntity sanJoseNews = new UsergridEntity(collectionName,"sanJoseNews");
+        sanJoseNews.setLocation(37.337812, -121.890784);
+        entities.add(sanJoseNews);
+
+        UsergridEntity deAnza = new UsergridEntity(collectionName,"deAnza");
+        deAnza.setLocation(37.334370, -121.895081);
+        entities.add(deAnza);
+
+        Usergrid.POST(entities);
+
+        SDKTestUtils.indexSleep();
+
+        float centerLat = 37.334110f;
+        float centerLon = -121.894340f;
+
+        // Test a large distance
+        UsergridResponse queryResponse = Usergrid.GET(new UsergridQuery(collectionName).locationWithin(611.00000, centerLat, centerLon));
+        assertNotNull(queryResponse.getEntities());
+
+        float lastDistanceFrom = 0;
+        for (UsergridEntity entity : queryResponse.getEntities()) {
+
+            JsonNode locationNode = entity.getEntityProperty("location");
+            assertNotNull("location node should not be null", locationNode);
+
+            DoubleNode lat = (DoubleNode) locationNode.get("latitude");
+            DoubleNode lon = (DoubleNode) locationNode.get("longitude");
+
+            float distanceFrom = distFrom(centerLat, centerLon, lat.floatValue(), lon.floatValue());
+            System.out.println("Entity " + entity.getName() + " is " + distanceFrom + " away");
+
+            assertTrue("Entity " + entity.getName() + " was included but is not within specified distance (" + distanceFrom + ")", distanceFrom <= 611.0);
+
+            if (lastDistanceFrom != 0) {
+                assertTrue("GEO results are not sorted by distance ascending: expected " + lastDistanceFrom + " <= " + distanceFrom, lastDistanceFrom <= distanceFrom);
+            }
+
+            lastDistanceFrom = distanceFrom;
+        }
+
+        // Test a small distance
+        queryResponse = Usergrid.GET(new UsergridQuery(collectionName).locationWithin(150, centerLat, centerLon));
+        assertNotNull(queryResponse.getEntities());
+
+        lastDistanceFrom = 0;
+        for (UsergridEntity entity : queryResponse.getEntities()) {
+
+            JsonNode locationNode = entity.getEntityProperty("location");
+            assertNotNull("location node should not be null", locationNode);
+
+            DoubleNode lat = (DoubleNode) locationNode.get("latitude");
+            DoubleNode lon = (DoubleNode) locationNode.get("longitude");
+
+            float distanceFrom = distFrom(centerLat, centerLon, lat.floatValue(), lon.floatValue());
+            System.out.println("Entity " + entity.getName() + " is " + distanceFrom + " away");
+
+            assertTrue("Entity " + entity.getName() + " was included but is not within specified distance (" + distanceFrom + ")", distanceFrom <= 150);
+
+            if (lastDistanceFrom != 0) {
+                assertTrue("GEO results are not sorted by distance ascending: expected " + lastDistanceFrom + " <= " + distanceFrom, lastDistanceFrom <= distanceFrom);
+            }
+
+            lastDistanceFrom = distanceFrom;
+        }
+
+        Usergrid.DELETE(deleteQuery);
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/SDKTestConfiguration.java b/sdks/java/src/test/java/org/apache/usergrid/client/SDKTestConfiguration.java
new file mode 100644
index 0000000..e92e7be
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/SDKTestConfiguration.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.UsergridEnums.UsergridAuthMode;
+
+public class SDKTestConfiguration {
+    public static final String APP_CLIENT_ID = "b3U6THNcevskEeOQZLcUROUUVA"; //"YXA6_j0WsfFCEeWKoy6txsCOfA" ;
+    public static final String APP_CLIENT_SECRET = "b3U6RZHYznP28xieBzQPackFPmmnevU"; //"YXA6jg8x4wjq1AAyQBKtn4bRd1l0gJ8"; //
+
+    public static final String APP_UserName = "javaSDK"; //"test";// //"b3U66ne33W4OEeWXmAIj6QFb-Q";
+    public static final String APP_Password = "Apigee123"; //"test";//"b3U6PxbpQiTrXKCWu0n1CjK1uTZXuG4";
+    public static final String USERGRID_URL = "https://api.usergrid.com/";
+    public static final String ORG_NAME = "rwalsh";
+    public static final String APP_NAME = "sdk.demo";
+
+    public static UsergridAuthMode authFallBack = UsergridAuthMode.APP;
+
+//  public static final String APP_CLIENT_ID = "YXA61n2kpFffEeWs9QLknKqhHw";
+//  public static final String APP_CLIENT_SECRET = "YXA69_aRW1IHLgMTUUYSitsGwOLY8uQ";
+//  public static final String USERGRID_URL = "https://fhirsandbox-prod.apigee.net/appservices";
+//  public static final String ORG_NAME = "usergrid";
+//  public static final String APP_NAME = "sandbox";
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/SDKTestUtils.java b/sdks/java/src/test/java/org/apache/usergrid/client/SDKTestUtils.java
new file mode 100644
index 0000000..fc5a039
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/SDKTestUtils.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class SDKTestUtils {
+
+
+    public static Map<String, UsergridEntity> createColorShapes(String collection) {
+
+        Map<String, Map<String, String>> entityMap = new HashMap<>(7);
+
+        Map<String, String> fields = new HashMap<>(3);
+        fields.put("color", "red");
+        fields.put("shape", "square");
+
+        entityMap.put("redsquare", fields);
+
+        fields = new HashMap<>(3);
+        fields.put("color", "blue");
+        fields.put("shape", "circle");
+
+        entityMap.put("bluecircle", fields);
+
+        fields = new HashMap<>(3);
+        fields.put("color", "yellow");
+        fields.put("shape", "triangle");
+
+        entityMap.put("yellowtriangle", fields);
+
+        return createEntities(collection, entityMap);
+    }
+
+    public static Map<String, UsergridEntity> createEntities(final String collection,
+                                                             final Map<String, Map<String, String>> entities) {
+
+        Map<String, UsergridEntity> entityMap = new HashMap<>();
+
+        for (Map.Entry<String, Map<String, String>> entity : entities.entrySet()) {
+
+            UsergridEntity e = createEntity(collection, entity.getKey(), entity.getValue());
+            entityMap.put(e.getUuid(), e);
+        }
+
+        return entityMap;
+    }
+
+    public static UsergridEntity createEntity(final String collection,
+                                              final String name,
+                                              final Map<String, String> fields) {
+
+        UsergridEntity e = new UsergridEntity(collection, name);
+
+        if( fields != null ) {
+            for (Map.Entry<String, String> field : fields.entrySet()) {
+                e.putProperty(field.getKey(), field.getValue());
+            }
+        }
+
+        UsergridResponse r = Usergrid.getInstance().POST(e);
+
+        if (r.getResponseError() != null) {
+            assertTrue("UUID should not be null", e.getUuid() != null);
+            if( fields != null ) {
+                for (Map.Entry<String, String> field : fields.entrySet()) {
+                    assertEquals("attempted to set a property which did not persist on the entity", e.getStringProperty(field.getKey()),field.getValue());
+                }
+            }
+        }
+
+        return r.first();
+    }
+
+    public static void sleep(long millis) {
+        try {
+            Thread.sleep(millis);
+        } catch (InterruptedException ignore) {
+            ignore.printStackTrace();
+        }
+    }
+
+    public static void indexSleep() {
+        sleep(1000);
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/UsergridClientAuthTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridClientAuthTestCase.java
new file mode 100644
index 0000000..82ca3c9
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridClientAuthTestCase.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.UsergridClient;
+import org.apache.usergrid.java.client.UsergridEnums;
+import org.apache.usergrid.java.client.UsergridRequest;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.model.UsergridEntity;
+import org.apache.usergrid.java.client.model.UsergridUser;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Test;
+
+import java.util.List;
+
+public class UsergridClientAuthTestCase {
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void clientAppInit() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        Usergrid.authenticateApp(new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET));
+
+        //should fall back to using no authentication when currentUser is not authenticated and authFallback is set to NONE
+        UsergridClient client = Usergrid.getInstance();
+//        client.config.authMode = UsergridEnums.UsergridAuthMode.NONE;
+
+        String[] segments = {client.getOrgId(), client.getAppId(), "users"};
+        UsergridRequest request = new UsergridRequest(UsergridEnums.UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE,
+                client.getBaseUrl(), null, null, null, null, client.authForRequests(), segments);
+        client.sendRequest(request);
+    }
+
+    @Test
+    public void clientUserInit() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL);
+        Usergrid.authenticateUser(new UsergridUserAuth(SDKTestConfiguration.APP_UserName, SDKTestConfiguration.APP_Password));
+        UsergridResponse getResponse = Usergrid.GET("user","eb8145ea-e171-11e5-a5e5-2bc0953f9fe6");
+        if( getResponse.getEntities() != null ) {
+            UsergridEntity entity = getResponse.first();
+            if( entity instanceof UsergridUser) {
+                UsergridUser user = (UsergridUser) entity;
+                System.out.print(user.toString());
+            }
+            List<UsergridUser> users = getResponse.users();
+            if( users != null ) {
+                System.out.print(users.get(0).toString());
+            }
+        }
+
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/UsergridInitTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridInitTestCase.java
new file mode 100644
index 0000000..980a3e7
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridInitTestCase.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.UsergridClient;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.junit.After;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class UsergridInitTestCase {
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void testInitAppUsergrid() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL);
+        Usergrid.authenticateApp(new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET));
+        assertTrue("usergrid should be an instance of usergrid client", Usergrid.getInstance().getClass() == UsergridClient.class);
+    }
+
+    @Test
+    public void testInitUserUsergrid() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL);
+        Usergrid.authenticateUser(new UsergridUserAuth(SDKTestConfiguration.APP_UserName, SDKTestConfiguration.APP_Password));
+        assertTrue("usergrid should be an instance of usergrid client", Usergrid.getInstance().getClass() == UsergridClient.class);
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/UsergridResponseErrorTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridResponseErrorTestCase.java
new file mode 100644
index 0000000..3533805
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridResponseErrorTestCase.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.*;
+
+public class UsergridResponseErrorTestCase {
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, SDKTestConfiguration.authFallBack);
+        UsergridAppAuth appAuth = new UsergridAppAuth(SDKTestConfiguration.APP_CLIENT_ID, SDKTestConfiguration.APP_CLIENT_SECRET);
+        Usergrid.authenticateApp(appAuth);
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void testEntityCreationSuccess() {
+        String collectionName = "ect" + System.currentTimeMillis();
+
+        Map<String, String> fields = new HashMap<>(3);
+        fields.put("color", "red");
+        fields.put("shape", "square");
+
+        SDKTestUtils.createEntity(collectionName, "testEntity1", fields);
+        UsergridResponse eLookUp = Usergrid.GET(collectionName, "testEntity1");
+        assertNull("The returned entity is null!", eLookUp.getResponseError());
+
+        UsergridResponse response = Usergrid.GET(collectionName, "testEntityThatShouldNotExist");
+        assertFalse("Response returned should not be ok.",response.ok());
+        assertTrue("StatusCode equals than 404", response.getStatusCode() == 404);
+        assertNotNull("The returned entity is null!", response.getResponseError());
+    }
+}
diff --git a/sdks/java/src/test/java/org/apache/usergrid/client/UsergridResponseTestCase.java b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridResponseTestCase.java
new file mode 100644
index 0000000..e158d85
--- /dev/null
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridResponseTestCase.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.client;
+
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.UsergridEnums;
+import org.apache.usergrid.java.client.auth.UsergridUserAuth;
+import org.apache.usergrid.java.client.response.UsergridResponse;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class UsergridResponseTestCase {
+
+    @Before
+    public void before() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL, UsergridEnums.UsergridAuthMode.USER);
+        Usergrid.authenticateUser(new UsergridUserAuth(SDKTestConfiguration.APP_UserName, SDKTestConfiguration.APP_Password));
+    }
+
+    @After
+    public void after() {
+        Usergrid.reset();
+    }
+
+    @Test
+    public void testLogoutUser() {
+        String collectionName = "ect" + System.currentTimeMillis();
+
+        Map<String, String> fields = new HashMap<>(3);
+        fields.put("color", "red");
+        fields.put("shape", "square");
+
+        SDKTestUtils.createEntity(collectionName, "testEntity1", fields);
+        UsergridResponse response = Usergrid.GET(collectionName, "testEntity1");
+        Object instanceObj = response.getStatusCode();
+        assertTrue("The returned statusCode is and object of integer", instanceObj instanceof Integer);
+        instanceObj = response.ok();
+        assertTrue("The returned statusCode is and object of boolean", instanceObj instanceof Boolean);
+
+        UsergridResponse resp = Usergrid.logoutUser(SDKTestConfiguration.APP_UserName,null);
+
+        response = Usergrid.GET(collectionName, "testEntity1");
+        assertNotNull("The response should throw an error",response.getResponseError());
+    }
+
+    @Test
+    public void testLogoutCurrentUser() {
+        String collectionName = "ect" + System.currentTimeMillis();
+
+        Map<String, String> fields = new HashMap<>(3);
+        fields.put("color", "red");
+        fields.put("shape", "square");
+
+        SDKTestUtils.createEntity(collectionName, "testEntity12", fields);
+        UsergridResponse response = Usergrid.GET(collectionName, "testEntity12");
+        assertNull("The response should not throw an error",response.getResponseError());
+
+        Usergrid.logoutCurrentUser();
+        response = Usergrid.GET(collectionName, "testEntity1");
+        assertNotNull("The response should throw an error",response.getResponseError());
+    }
+
+}
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/QueueInfo.java b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridTestCase.java
similarity index 66%
rename from sdks/java/src/main/java/org/apache/usergrid/java/client/response/QueueInfo.java
rename to sdks/java/src/test/java/org/apache/usergrid/client/UsergridTestCase.java
index 04fe717..5e1ab3a 100644
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/QueueInfo.java
+++ b/sdks/java/src/test/java/org/apache/usergrid/client/UsergridTestCase.java
@@ -14,31 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.usergrid.java.client.response;
+package org.apache.usergrid.client;
 
-import java.util.UUID;
+import org.apache.usergrid.java.client.Usergrid;
+import org.apache.usergrid.java.client.auth.UsergridAppAuth;
+import org.junit.Before;
+import org.junit.Test;
 
-public class QueueInfo {
+public class UsergridTestCase {
 
-	String path;
-	UUID queue;
-
-	public QueueInfo() {
-	}
-
-	public String getPath() {
-		return path;
-	}
-
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	public UUID getQueue() {
-		return queue;
-	}
-
-	public void setQueue(UUID queue) {
-		this.queue = queue;
-	}
+    @Test
+    public void initialize() {
+        Usergrid.initSharedInstance(SDKTestConfiguration.ORG_NAME, SDKTestConfiguration.APP_NAME, SDKTestConfiguration.USERGRID_URL);
+    }
 }
diff --git a/sdks/java/usergrid-java-client-2.1.0.jar b/sdks/java/usergrid-java-client-2.1.0.jar
new file mode 100644
index 0000000..fa90a59
--- /dev/null
+++ b/sdks/java/usergrid-java-client-2.1.0.jar
Binary files differ
diff --git a/sdks/swift/README.md b/sdks/swift/README.md
index be8b6f6..14f93ea 100644
--- a/sdks/swift/README.md
+++ b/sdks/swift/README.md
@@ -742,7 +742,7 @@
                      progress: { bytesFinished, bytesExpected in
                         // Monitor the upload progress
                      },
-                     completion: { response, asset, error in
+                     completion: { asset, response in
                         // The asset is now uploaded to Usergrid and entity.asset == asset
 })
 ```
diff --git a/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/Main.storyboard b/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/Main.storyboard
index 5f38e98..8ec5316 100644
--- a/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/Main.storyboard
+++ b/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/Main.storyboard
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="0Ca-En-eac">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="0Ca-En-eac">
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
         <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
     </dependencies>
     <scenes>
@@ -30,7 +30,7 @@
         <!--Chit-Chat-->
         <scene sceneID="tne-QT-ifu">
             <objects>
-                <viewController title="Chit-Chat" id="BYZ-38-t0r" customClass="LoginViewController" customModule="SDKSample" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController title="Chit-Chat" id="BYZ-38-t0r" customClass="LoginViewController" customModule="ActivityFeed" customModuleProvider="target" sceneMemberID="viewController">
                     <layoutGuides>
                         <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                         <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
@@ -39,7 +39,7 @@
                         <rect key="frame" x="0.0" y="64" width="414" height="672"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="AUv-4K-02z" userLabel="Password Text Field" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="AUv-4K-02z" userLabel="Password Text Field" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="55" y="221" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98039215686274506" green="0.98039215686274506" blue="0.98039215686274506" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
@@ -56,7 +56,7 @@
                                     <outlet property="nextResponderField" destination="Pj4-c5-WOw" id="ndL-qj-xzY"/>
                                 </connections>
                             </textField>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Z6O-sS-NMx" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Z6O-sS-NMx" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="54" y="183" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98431372549019602" green="0.98431372549019602" blue="0.98431372549019602" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
@@ -142,7 +142,7 @@
         <!--Chat-->
         <scene sceneID="xKw-pF-1VK">
             <objects>
-                <viewController storyboardIdentifier="Chat" id="e2L-gy-keG" customClass="MessageViewController" customModule="SDKSample" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="Chat" id="e2L-gy-keG" customClass="MessageViewController" customModule="ActivityFeed" customModuleProvider="target" sceneMemberID="viewController">
                     <layoutGuides>
                         <viewControllerLayoutGuide type="top" id="l0J-tj-N8R"/>
                         <viewControllerLayoutGuide type="bottom" id="aRQ-i9-bBv"/>
@@ -171,7 +171,7 @@
         <!--Follow-->
         <scene sceneID="L1J-vW-kjp">
             <objects>
-                <viewController id="dZf-Pa-FEf" customClass="FollowViewController" customModule="SDKSample" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController id="dZf-Pa-FEf" customClass="FollowViewController" customModule="ActivityFeed" customModuleProvider="target" sceneMemberID="viewController">
                     <layoutGuides>
                         <viewControllerLayoutGuide type="top" id="bqC-DA-7jl"/>
                         <viewControllerLayoutGuide type="bottom" id="WfX-kG-aQR"/>
@@ -191,7 +191,7 @@
                                     <action selector="addFollowerButtonTouched:" destination="dZf-Pa-FEf" eventType="touchUpInside" id="yuv-da-ArK"/>
                                 </connections>
                             </button>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="30w-Hq-z3n" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="30w-Hq-z3n" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="55" y="229" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98431372549999996" green="0.98431372549999996" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
@@ -236,7 +236,7 @@
         <!--Create Account-->
         <scene sceneID="KTq-tk-yrN">
             <objects>
-                <viewController title="Create Account" id="bnr-oZ-e0h" customClass="RegisterViewController" customModule="SDKSample" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController title="Create Account" id="bnr-oZ-e0h" customClass="RegisterViewController" customModule="ActivityFeed" customModuleProvider="target" sceneMemberID="viewController">
                     <layoutGuides>
                         <viewControllerLayoutGuide type="top" id="54e-JK-PBR"/>
                         <viewControllerLayoutGuide type="bottom" id="JWP-YK-0Zj"/>
@@ -245,7 +245,7 @@
                         <rect key="frame" x="0.0" y="64" width="414" height="672"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Name" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="X55-Ni-6OO" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Name" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="X55-Ni-6OO" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="55" y="112" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98431372549999996" green="0.98431372549999996" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
@@ -262,7 +262,7 @@
                                     <outlet property="nextResponderField" destination="T7U-9G-AS6" id="HUF-el-scZ"/>
                                 </connections>
                             </textField>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="T7U-9G-AS6" userLabel="Username Text Field" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="T7U-9G-AS6" userLabel="Username Text Field" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="55" y="150" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98431372549999996" green="0.98431372549999996" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
@@ -279,7 +279,7 @@
                                     <outlet property="nextResponderField" destination="Fbi-gF-0jQ" id="sjv-Dm-5GL"/>
                                 </connections>
                             </textField>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Email" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Fbi-gF-0jQ" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Email" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Fbi-gF-0jQ" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="55" y="188" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98431372549999996" green="0.98431372549999996" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
@@ -296,7 +296,7 @@
                                     <outlet property="nextResponderField" destination="3wi-7s-j5P" id="eE7-9Y-L0t"/>
                                 </connections>
                             </textField>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3wi-7s-j5P" userLabel="Password Text Field" customClass="FormTextField" customModule="SDKSample" customModuleProvider="target">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3wi-7s-j5P" userLabel="Password Text Field" customClass="FormTextField" customModule="ActivityFeed" customModuleProvider="target">
                                 <rect key="frame" x="55" y="226" width="305" height="30"/>
                                 <color key="backgroundColor" red="0.98431372549999996" green="0.98431372549999996" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
diff --git a/sdks/swift/Samples/ActivityFeed/Source/FormTextField.swift b/sdks/swift/Samples/ActivityFeed/Source/FormTextField.swift
index 9a79022..fbb9bd6 100644
--- a/sdks/swift/Samples/ActivityFeed/Source/FormTextField.swift
+++ b/sdks/swift/Samples/ActivityFeed/Source/FormTextField.swift
@@ -43,7 +43,7 @@
     }
 
     func setUp() {
-        addTarget(self, action: "actionKeyboardButtonTapped:", forControlEvents: .EditingDidEndOnExit)
+        addTarget(self, action: #selector(FormTextField.actionKeyboardButtonTapped(_:)), forControlEvents: .EditingDidEndOnExit)
     }
 
     func actionKeyboardButtonTapped(sender: UITextField) {
diff --git a/sdks/swift/Samples/ActivityFeed/Source/MessageViewController.swift b/sdks/swift/Samples/ActivityFeed/Source/MessageViewController.swift
index 28d32d4..b2a152c 100644
--- a/sdks/swift/Samples/ActivityFeed/Source/MessageViewController.swift
+++ b/sdks/swift/Samples/ActivityFeed/Source/MessageViewController.swift
@@ -40,7 +40,7 @@
         commonInit()
     }
 
-    required init!(coder decoder: NSCoder!) {
+    required init(coder decoder: NSCoder) {
         super.init(coder: decoder)
         commonInit()
     }
@@ -71,7 +71,7 @@
     func reloadMessages() {
         UsergridManager.getFeedMessages { (response) -> Void in
             self.messageEntities = response.entities as? [ActivityEntity] ?? []
-            self.tableView.reloadData()
+            self.tableView!.reloadData()
         }
     }
 
@@ -84,8 +84,8 @@
         self.textInputbar.maxCharCount = 256
         self.textInputbar.editorTitle.textColor = UIColor.darkGrayColor()
 
-        self.tableView.separatorStyle = .None
-        self.tableView.registerClass(MessageTableViewCell.self, forCellReuseIdentifier:MessageViewController.MESSAGE_CELL_IDENTIFIER)
+        self.tableView!.separatorStyle = .None
+        self.tableView!.registerClass(MessageTableViewCell.self, forCellReuseIdentifier:MessageViewController.MESSAGE_CELL_IDENTIFIER)
     }
 
     override func didPressRightButton(sender: AnyObject!) {
@@ -97,13 +97,13 @@
                 let rowAnimation: UITableViewRowAnimation = self.inverted ? .Bottom : .Top
                 let scrollPosition: UITableViewScrollPosition = self.inverted ? .Bottom : .Top
 
-                self.tableView.beginUpdates()
+                self.tableView!.beginUpdates()
                 self.messageEntities.insert(messageEntity, atIndex: 0)
-                self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: rowAnimation)
-                self.tableView.endUpdates()
+                self.tableView!.insertRowsAtIndexPaths([indexPath], withRowAnimation: rowAnimation)
+                self.tableView!.endUpdates()
 
-                self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: scrollPosition, animated: true)
-                self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
+                self.tableView!.scrollToRowAtIndexPath(indexPath, atScrollPosition: scrollPosition, animated: true)
+                self.tableView!.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
 
                 self.sendEntitiesToWatch(self.messageEntities)
             }
@@ -111,7 +111,7 @@
         super.didPressRightButton(sender)
     }
 
-    override func keyForTextCaching() -> String! {
+    override func keyForTextCaching() -> String? {
         return NSBundle.mainBundle().bundleIdentifier
     }
 
@@ -149,11 +149,11 @@
     }
 
     func messageCellForRowAtIndexPath(indexPath:NSIndexPath) -> MessageTableViewCell {
-        let cell = self.tableView.dequeueReusableCellWithIdentifier(MessageViewController.MESSAGE_CELL_IDENTIFIER) as! MessageTableViewCell
+        let cell = self.tableView!.dequeueReusableCellWithIdentifier(MessageViewController.MESSAGE_CELL_IDENTIFIER) as! MessageTableViewCell
         self.populateCell(cell, feedEntity: self.messageEntities[indexPath.row])
 
         cell.indexPath = indexPath
-        cell.transform = self.tableView.transform
+        cell.transform = self.tableView!.transform
 
         return cell
     }
@@ -176,7 +176,7 @@
         let pointSize = MessageTableViewCell.defaultFontSize
         let attributes = [NSFontAttributeName:UIFont.boldSystemFontOfSize(pointSize),NSParagraphStyleAttributeName:paragraphStyle]
 
-        let width: CGFloat = CGRectGetWidth(self.tableView.frame) - MessageTableViewCell.kMessageTableViewCellAvatarHeight - 25
+        let width: CGFloat = CGRectGetWidth(self.tableView!.frame) - MessageTableViewCell.kMessageTableViewCellAvatarHeight - 25
 
         let titleBounds = messageUsername.boundingRectWithSize(CGSize(width: width, height: CGFloat.max), options: .UsesLineFragmentOrigin, attributes: attributes, context: nil)
         let bodyBounds = messageText.boundingRectWithSize(CGSize(width: width, height: CGFloat.max), options: .UsesLineFragmentOrigin, attributes: attributes, context: nil)
diff --git a/sdks/swift/Samples/Push/Source/UsergridManager.swift b/sdks/swift/Samples/Push/Source/UsergridManager.swift
index a916b75..00e8ec2 100644
--- a/sdks/swift/Samples/Push/Source/UsergridManager.swift
+++ b/sdks/swift/Samples/Push/Source/UsergridManager.swift
@@ -63,7 +63,7 @@
     }
 
     static func pushToThisDevice() {
-        UsergridManager.sendPush(deviceId: UsergridDevice.sharedDevice.uuid, message: "Push to this device message.")
+        UsergridManager.sendPush(deviceId: UsergridDevice.sharedDevice.uuid!, message: "Push to this device message.")
     }
 
     static func pushToAllDevices() {
diff --git a/sdks/swift/Source/Usergrid.swift b/sdks/swift/Source/Usergrid.swift
index 1049a62..063d361 100644
--- a/sdks/swift/Source/Usergrid.swift
+++ b/sdks/swift/Source/Usergrid.swift
@@ -27,7 +27,7 @@
 import Foundation
 
 /// The version number for the Usergrid Swift SDK.
-public let UsergridSDKVersion = "2.1.0"
+public let UsergridSDKVersion = "2.1.1"
 
 /**
  The `Usergrid` class acts as a static shared instance manager for the `UsergridClient` class.
@@ -87,10 +87,10 @@
         set(auth) { Usergrid.sharedInstance.appAuth = auth }
     }
 
-    /// The `UsergridAuthFallback` value used to determine what type of token will be sent of the shared instance of `UsergridClient`, if any.
-    public static var authFallback: UsergridAuthFallback {
-        get { return Usergrid.sharedInstance.authFallback }
-        set(authFallback) { Usergrid.sharedInstance.authFallback = authFallback }
+    /// The `UsergridAuthMode` value used to determine what type of token will be sent of the shared instance of `UsergridClient`, if any.
+    public static var authMode: UsergridAuthMode {
+        get { return Usergrid.sharedInstance.authMode }
+        set(mode) { Usergrid.sharedInstance.authMode = mode }
     }
 
     // MARK: - Initialization -
@@ -206,7 +206,7 @@
 
     If there is a `UsergridUser` logged in and the token of that user is valid then it will return that.
 
-    Otherwise, if the `authFallback` is `.App`, and the `UsergridAppAuth` of the client is set and the token is valid it will return that.
+    Otherwise, if the `authMode` is `.App`, and the `UsergridAppAuth` of the client is set and the token is valid it will return that.
 
     - returns: The `UsergridAuth` if one is found or nil if not.
     */
@@ -255,7 +255,19 @@
     }
 
     /**
-    Logs out the current user of the shared instance locally and remotely.
+     Changes the given `UsergridUser`'s current password with the shared instance of `UsergridClient`.
+
+     - parameter user:       The user.
+     - parameter old:        The old password.
+     - parameter new:        The new password.
+     - parameter completion: The optional completion block.
+     */
+    public static func resetPassword(user: UsergridUser, old:String, new:String, completion:UsergridUserResetPasswordCompletion? = nil) {
+        Usergrid.sharedInstance.resetPassword(user, old: old, new: new, completion: completion)
+    }
+
+    /**
+    Logs out the current user of the shared instance locally and remotely using the shared instance of `UsergridClient`.
 
     - parameter completion: The completion block that will be called after logout has completed.
     */
@@ -566,7 +578,7 @@
     - parameter relationship: The relationship.
     - parameter completion:   The completion block that will be called once the request has completed.
     */
-    public static func getConnections(direction:UsergridDirection, entity:UsergridEntity, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public static func getConnections(direction:UsergridDirection, entity:UsergridEntity, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         Usergrid.sharedInstance.getConnections(direction, entity: entity, relationship: relationship, query:query, completion: completion)
     }
 
@@ -580,7 +592,7 @@
      - parameter query:            The optional query.
      - parameter completion:       The completion block that will be called once the request has completed.
      */
-    public static func getConnections(direction:UsergridDirection, type:String, uuidOrName:String, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public static func getConnections(direction:UsergridDirection, type:String, uuidOrName:String, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         Usergrid.sharedInstance.getConnections(direction, type: type, uuidOrName: uuidOrName, relationship: relationship, query:query, completion: completion)
     }
 
@@ -593,7 +605,7 @@
      - parameter query:        The optional query.
      - parameter completion:   The optional completion block that will be called once the request has completed.
      */
-    public static func getConnections(direction:UsergridDirection, uuid:String, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public static func getConnections(direction:UsergridDirection, uuid:String, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         Usergrid.sharedInstance.getConnections(direction, uuid: uuid, relationship: relationship, query: query, completion: completion)
     }
 
diff --git a/sdks/swift/Source/UsergridAsset.swift b/sdks/swift/Source/UsergridAsset.swift
index 3f74796..9353ec1 100644
--- a/sdks/swift/Source/UsergridAsset.swift
+++ b/sdks/swift/Source/UsergridAsset.swift
@@ -35,10 +35,10 @@
 public typealias UsergridAssetRequestProgress = (bytesFinished:Int64, bytesExpected: Int64) -> Void
 
 /// The completion block used in `UsergridAsset` are finished uploading.
-public typealias UsergridAssetUploadCompletion = (response:UsergridResponse,asset:UsergridAsset?, error: String?) -> Void
+public typealias UsergridAssetUploadCompletion = (asset:UsergridAsset?, response: UsergridResponse) -> Void
 
 /// The completion block used in `UsergridAsset` are finished downloading.
-public typealias UsergridAssetDownloadCompletion = (asset:UsergridAsset?, error: String?) -> Void
+public typealias UsergridAssetDownloadCompletion = (asset:UsergridAsset?, error: UsergridResponseError?) -> Void
 
 /**
 As Usergrid supports storing binary assets, the SDKs are designed to make uploading assets easier and more robust. Attaching, uploading, and downloading assets is handled by the `UsergridEntity` class.
@@ -47,7 +47,7 @@
 */
 public class UsergridAsset: NSObject, NSCoding {
 
-    private static let DEFAULT_FILE_NAME = "file"
+    internal static let DEFAULT_FILE_NAME = "file"
 
     // MARK: - Instance Properties -
 
@@ -95,7 +95,7 @@
 
     - returns: A new instance of `UsergridAsset` if the data can be gathered from the passed in `UIImage`, otherwise nil.
     */
-    public convenience init?(fileName:String? = UsergridAsset.DEFAULT_FILE_NAME, image:UIImage, imageContentType:UsergridImageContentType = .Png) {
+    public convenience init?(filename:String? = UsergridAsset.DEFAULT_FILE_NAME, image:UIImage, imageContentType:UsergridImageContentType = .Png) {
         var imageData: NSData?
         switch(imageContentType) {
             case .Png :
@@ -104,7 +104,7 @@
                 imageData = UIImageJPEGRepresentation(image, 1.0)
         }
         if let assetData = imageData {
-            self.init(filename:fileName,data:assetData,contentType:imageContentType.stringValue)
+            self.init(filename:filename,data:assetData,contentType:imageContentType.stringValue)
         } else {
             self.init(filename:"",data:NSData(),contentType:"")
             return nil
@@ -121,9 +121,9 @@
 
     - returns: A new instance of `UsergridAsset` if the data can be gathered from the passed in `NSURL`, otherwise nil.
     */
-    public convenience init?(fileName:String? = UsergridAsset.DEFAULT_FILE_NAME, fileURL:NSURL, contentType:String? = nil) {
-        if fileURL.isFileReferenceURL(), let assetData = NSData(contentsOfURL: fileURL) {
-            var fileNameToUse = fileName
+    public convenience init?(filename:String? = UsergridAsset.DEFAULT_FILE_NAME, fileURL:NSURL, contentType:String? = nil) {
+        if fileURL.fileURL, let assetData = NSData(contentsOfURL: fileURL) {
+            var fileNameToUse = filename
             if fileNameToUse != UsergridAsset.DEFAULT_FILE_NAME, let inferredFileName = fileURL.lastPathComponent {
                 fileNameToUse = inferredFileName
             }
@@ -135,7 +135,7 @@
                 return nil
             }
         } else {
-            print("Usergrid Error: fileURL parameter must be a file reference URL.")
+            print("Usergrid Error: fileURL parameter must be a file URL.")
             self.init(filename:"",data:NSData(),contentType:"")
             return nil
         }
diff --git a/sdks/swift/Source/UsergridAuth.swift b/sdks/swift/Source/UsergridAuth.swift
index a8879b2..e87e9c1 100644
--- a/sdks/swift/Source/UsergridAuth.swift
+++ b/sdks/swift/Source/UsergridAuth.swift
@@ -104,7 +104,7 @@
 
     - parameter aDecoder: The decoder.
 
-    - returns: A decoded `UsergridUser` object.
+    - returns: A decoded `UsergridAuth` object.
     */
     required public init?(coder aDecoder: NSCoder) {
         self.accessToken = aDecoder.decodeObjectForKey("accessToken") as? String
@@ -177,7 +177,7 @@
 
     - parameter aDecoder: The decoder.
 
-    - returns: A decoded `UsergridUser` object.
+    - returns: A decoded `UsergridUserAuth` object.
     */
     required public init?(coder aDecoder: NSCoder) {
         guard let username = aDecoder.decodeObjectForKey("username") as? String,
@@ -247,7 +247,7 @@
 
     - parameter aDecoder: The decoder.
 
-    - returns: A decoded `UsergridUser` object.
+    - returns: A decoded `UsergridAppAuth` object.
     */
     required public init?(coder aDecoder: NSCoder) {
         guard let clientId = aDecoder.decodeObjectForKey("clientId") as? String,
diff --git a/sdks/swift/Source/UsergridClient.swift b/sdks/swift/Source/UsergridClient.swift
index 9cb6aa7..2b3eb6b 100644
--- a/sdks/swift/Source/UsergridClient.swift
+++ b/sdks/swift/Source/UsergridClient.swift
@@ -51,7 +51,7 @@
     public var baseUrl : String { return config.baseUrl }
 
     /// The constructed URL string based on the `UsergridClient`'s `baseUrl`, `orgId`, and `appId`.
-    internal var clientAppURL : String { return "\(baseUrl)/\(orgId)/\(appId)" }
+    public var clientAppURL : String { return "\(baseUrl)/\(orgId)/\(appId)" }
 
     /// Whether or not the current user will be saved and restored from the keychain.
     public var persistCurrentUserInKeychain: Bool {
@@ -78,16 +78,16 @@
     /// The temporary `UsergridAuth` object that is set when calling the `UsergridClient.usingAuth()` method.
     private var tempAuth: UsergridAuth? = nil
 
-    /// The application level `UsergridAppAuth` object.  Can be set manually but must call `authenticateApp` to retrive token.
+    /// The application level `UsergridAppAuth` object.  Can be set manually but must call `authenticateApp` to retrieve token.
     public var appAuth: UsergridAppAuth? {
         get { return config.appAuth }
         set(auth) { config.appAuth = auth }
     }
 
-    /// The `UsergridAuthFallback` value used to determine what type of token will be sent, if any.
-    public var authFallback: UsergridAuthFallback {
-        get { return config.authFallback }
-        set(fallback) { config.authFallback = fallback }
+    /// The `UsergridAuthMode` value used to determine what type of token will be sent, if any.
+    public var authMode: UsergridAuthMode {
+        get { return config.authMode }
+        set(mode) { config.authMode = mode }
     }
 
     // MARK: - Initialization -
@@ -196,7 +196,12 @@
     */
     public func applyPushToken(device: UsergridDevice, pushToken: NSData, notifierID: String, completion: UsergridResponseCompletion? = nil) {
         device.applyPushToken(pushToken, notifierID: notifierID)
-        device.save(self, completion: completion)
+        self.PUT("devices", jsonBody: device.jsonObjectValue) { (response) in
+            if let responseEntity = response.entity {
+                device.copyInternalsFromEntity(responseEntity)
+            }
+            completion?(response: response)
+        }
     }
 
     // MARK: - Authorization and User Management -
@@ -208,19 +213,33 @@
 
     If there is a `UsergridUser` logged in and the token of that user is valid then it will return that.
 
-    Otherwise, if the `authFallback` is `.App`, and the `UsergridAppAuth` of the client is set and the token is valid it will return that.
+    Otherwise, if the `authMode` is `.App`, and the `UsergridAppAuth` of the client is set and the token is valid it will return that.
 
     - returns: The `UsergridAuth` if one is found or nil if not.
     */
-    internal func authForRequests() -> UsergridAuth? {
+    public func authForRequests() -> UsergridAuth? {
         var usergridAuth: UsergridAuth?
-        if let tempAuth = self.tempAuth where tempAuth.isValid {
-            usergridAuth = tempAuth
+        if let tempAuth = self.tempAuth {
+            if tempAuth.isValid {
+                usergridAuth = tempAuth
+            }
             self.tempAuth = nil
-        } else if let userAuth = self.userAuth where userAuth.isValid {
-            usergridAuth = userAuth
-        } else if self.authFallback == .App, let appAuth = self.appAuth where appAuth.isValid {
-            usergridAuth = appAuth
+        } else {
+            switch(self.authMode) {
+                case .User:
+                    if let userAuth = self.userAuth where userAuth.isValid {
+                        usergridAuth = userAuth
+                    }
+                    break
+                case .App:
+                    if let appAuth = self.appAuth where appAuth.isValid {
+                        usergridAuth = appAuth
+                    }
+                    break
+                case .None:
+                    usergridAuth = nil
+                    break
+            }
         }
         return usergridAuth
     }
@@ -319,7 +338,7 @@
     }
 
     /**
-     Changes the give `UsergridUser`'s current password with the shared instance of `UsergridClient`.
+     Changes the given `UsergridUser`'s current password.
 
      - parameter user:       The user.
      - parameter old:        The old password.
@@ -357,13 +376,7 @@
             return
         }
 
-        self.logoutUser(uuidOrUsername, token: token) { (response) -> Void in
-            if response.ok || response.error?.errorName == "auth_bad_access_token" {
-                self.currentUser?.auth = nil
-                self.currentUser = nil
-            }
-            completion?(response: response)
-        }
+        self.logoutUser(uuidOrUsername, token: token)
     }
 
     /**
@@ -396,7 +409,16 @@
                                       paths: paths,
                                       auth: self.authForRequests(),
                                       queryParams: queryParams)
-        self.sendRequest(request, completion: completion)
+
+        self.sendRequest(request) { response in
+            if uuidOrUsername == self.currentUser?.uuidOrUsername { // Check to see if this user is the currentUser
+                if response.ok || response.error?.errorName == "auth_bad_access_token" { // If the logout was successful or if we have a bad token reset things.
+                    self.currentUser?.auth = nil
+                    self.currentUser = nil
+                }
+            }
+            completion?(response: response)
+        }
     }
 
     // MARK: - Generic Request Methods -
@@ -807,7 +829,7 @@
     - parameter query:        The optional query.
     - parameter completion:   The optional completion block that will be called once the request has completed.
     */
-    public func getConnections(direction:UsergridDirection, entity:UsergridEntity, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public func getConnections(direction:UsergridDirection, entity:UsergridEntity, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         guard let uuidOrName = entity.uuidOrName
         else {
             completion?(response: UsergridResponse(client: self, errorName: "Invalid Entity Get Connections Attempt.", errorDescription: "The entity must have a `uuid` or `name` assigned."))
@@ -826,7 +848,7 @@
      - parameter query:            The optional query.
      - parameter completion:       The optional completion block that will be called once the request has completed.
      */
-    public func getConnections(direction:UsergridDirection, type:String, uuidOrName:String, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public func getConnections(direction:UsergridDirection, type:String, uuidOrName:String, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         let request = UsergridRequest(method: .Get,
                                       baseUrl: self.clientAppURL,
                                       paths: [type, uuidOrName, direction.connectionValue, relationship],
@@ -844,7 +866,7 @@
      - parameter query:        The optional query.
      - parameter completion:   The optional completion block that will be called once the request has completed.
      */
-    public func getConnections(direction:UsergridDirection, uuid:String, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public func getConnections(direction:UsergridDirection, uuid:String, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         let request = UsergridRequest(method: .Get,
             baseUrl: self.clientAppURL,
             paths: [uuid, direction.connectionValue, relationship],
@@ -869,9 +891,14 @@
                                                       auth: self.authForRequests(),
                                                       asset: asset)
 
-        _requestManager.performAssetUpload(assetRequest, progress: progress) { [weak entity] (response, asset, error) -> Void in
-            entity?.asset = asset
-            completion?(response: response, asset: asset, error: error)
+        _requestManager.performAssetUpload(assetRequest, progress: progress) { asset, response in
+            if response.ok {
+                entity.asset = asset
+                if let responseEntityFileMetaData = response.entity?.fileMetaData {
+                    entity.fileMetaData = responseEntityFileMetaData
+                }
+            }
+            completion?(asset: asset, response: response)
         }
     }
 
@@ -886,7 +913,7 @@
     public func downloadAsset(entity:UsergridEntity, contentType:String, progress:UsergridAssetRequestProgress? = nil, completion:UsergridAssetDownloadCompletion? = nil) {
         guard entity.hasAsset
         else {
-            completion?(asset: nil, error: "Entity does not have an asset attached.")
+            completion?(asset: nil, error: UsergridResponseError(errorName: "Download asset failed.", errorDescription: "Entity does not have an asset attached."))
             return
         }
 
diff --git a/sdks/swift/Source/UsergridClientConfig.swift b/sdks/swift/Source/UsergridClientConfig.swift
index 2719610..64ebd4f 100644
--- a/sdks/swift/Source/UsergridClientConfig.swift
+++ b/sdks/swift/Source/UsergridClientConfig.swift
@@ -44,8 +44,8 @@
     /// The base URL that all calls will be made with.
     public var baseUrl: String = UsergridClient.DEFAULT_BASE_URL
 
-    /// The `UsergridAuthFallback` value used to determine what type of token will be sent, if any.
-    public var authFallback: UsergridAuthFallback = .None
+    /// The `UsergridAuthMode` value used to determine what type of token will be sent, if any.
+    public var authMode: UsergridAuthMode = .User
 
     /// Whether or not the `UsergridClient` current user will be saved and restored from the keychain.
     public var persistCurrentUserInKeychain: Bool = true
@@ -92,16 +92,16 @@
     - parameter orgId:                          The organization identifier.
     - parameter appId:                          The application identifier.
     - parameter baseUrl:                        The base URL that all calls will be made with.
-    - parameter authFallback:                   The `UsergridAuthFallback` value used to determine what type of token will be sent, if any.
+    - parameter authMode:                       The `UsergridAuthMode` value used to determine what type of token will be sent, if any.
     - parameter persistCurrentUserInKeychain:   Whether or not the `UsergridClient` current user will be saved and restored from the keychain.
     - parameter appAuth:                        The application level `UsergridAppAuth` object.
 
     - returns: A new instance of `UsergridClientConfig`.
     */
-    public convenience init(orgId: String, appId: String, baseUrl:String, authFallback:UsergridAuthFallback, persistCurrentUserInKeychain: Bool = true, appAuth:UsergridAppAuth? = nil) {
+    public convenience init(orgId: String, appId: String, baseUrl:String, authMode:UsergridAuthMode, persistCurrentUserInKeychain: Bool = true, appAuth:UsergridAppAuth? = nil) {
         self.init(orgId:orgId,appId:appId,baseUrl:baseUrl)
         self.persistCurrentUserInKeychain = persistCurrentUserInKeychain
-        self.authFallback = authFallback
+        self.authMode = authMode
         self.appAuth = appAuth
     }
 
@@ -129,7 +129,7 @@
         self.baseUrl = baseUrl
         self.appAuth = aDecoder.decodeObjectForKey("appAuth") as? UsergridAppAuth
         self.persistCurrentUserInKeychain = aDecoder.decodeBoolForKey("persistCurrentUserInKeychain") ?? true
-        self.authFallback = UsergridAuthFallback(rawValue:aDecoder.decodeIntegerForKey("authFallback")) ?? .App
+        self.authMode = UsergridAuthMode(rawValue:aDecoder.decodeIntegerForKey("authMode")) ?? .None
         super.init()
     }
 
@@ -144,6 +144,6 @@
         aCoder.encodeObject(self.baseUrl, forKey: "baseUrl")
         aCoder.encodeObject(self.appAuth, forKey: "appAuth")
         aCoder.encodeBool(self.persistCurrentUserInKeychain, forKey: "persistCurrentUserInKeychain")
-        aCoder.encodeInteger(self.authFallback.rawValue, forKey: "authFallback")
+        aCoder.encodeInteger(self.authMode.rawValue, forKey: "authMode")
     }
 }
diff --git a/sdks/swift/Source/UsergridDevice.swift b/sdks/swift/Source/UsergridDevice.swift
index 995470c..004c42c 100644
--- a/sdks/swift/Source/UsergridDevice.swift
+++ b/sdks/swift/Source/UsergridDevice.swift
@@ -46,9 +46,6 @@
 
     // MARK: - Instance Properties -
 
-    /// Property helper method for the `UsergridDevice` objects `uuid`.
-    override public var uuid: String! { return super[UsergridEntityProperties.UUID.stringValue] as! String }
-
     /// Property helper method for the `UsergridDevice` objects device model.
     public var model: String { return super[UsergridDeviceProperties.Model.stringValue] as! String }
 
@@ -110,6 +107,44 @@
     }
 
     /**
+     Performs a PUT (or POST if no UUID is found) on the `UsergridDevice` using the shared instance of `UsergridClient`.
+     
+     If this device is equal to `UsergridDevice.sharedDevice` it will also update the shared device on the keychain.
+
+     - parameter completion: An optional completion block that, if successful, will contain the updated/saved `UsergridEntity` object.
+     */
+    public override func save(completion: UsergridResponseCompletion? = nil) {
+        self.save(Usergrid.sharedInstance, completion: completion)
+    }
+
+
+    /**
+     Performs a PUT (or POST if no UUID is found) on the `UsergridDevice`.
+
+     If this device is equal to `UsergridDevice.sharedDevice` it will also update the shared device on the keychain.
+
+     - parameter client:     The client to use when saving.
+     - parameter completion: An optional completion block that, if successful, will contain the updated/saved `UsergridEntity` object.
+     */
+    public override func save(client: UsergridClient, completion: UsergridResponseCompletion? = nil) {
+        super.save(client) { (response) in
+            if( response.ok ) {
+                if( self == UsergridDevice.sharedDevice || self.isEqualToEntity(UsergridDevice.sharedDevice)) {
+                    UsergridDevice.saveSharedDeviceToKeychain()
+                }
+            }
+            completion?(response:response)
+        }
+    }
+
+    /**
+     Saves the `UsergridDevice.sharedDevice` to the keychain.
+     */
+    public static func saveSharedDeviceToKeychain() {
+        UsergridDevice.saveSharedDeviceKeychainItem(UsergridDevice.sharedDevice)
+    }
+
+    /**
     Subscript for the `UsergridDevice` class. Note that all of the `UsergridDeviceProperties` are immutable.
 
     - Warning: When setting a properties value must be a valid JSON object.
diff --git a/sdks/swift/Source/UsergridEntity.swift b/sdks/swift/Source/UsergridEntity.swift
index 5baaba4..dd169ed 100644
--- a/sdks/swift/Source/UsergridEntity.swift
+++ b/sdks/swift/Source/UsergridEntity.swift
@@ -50,10 +50,10 @@
     }
 
     /// The `UsergridAsset` that contains the asset data.
-    public var asset: UsergridAsset?
+    internal(set) public var asset: UsergridAsset?
 
     /// The `UsergridFileMetaData` of this `UsergridEntity`.
-    private(set) public var fileMetaData : UsergridFileMetaData?
+    internal(set) public var fileMetaData : UsergridFileMetaData?
 
     /// Property helper method for the `UsergridEntity` objects `UsergridEntityProperties.EntityType`.
     public var type: String { return self.getEntitySpecificProperty(.EntityType) as! String }
@@ -115,6 +115,7 @@
     required public init(type:String, name:String? = nil, propertyDict:[String:AnyObject]? = nil) {
         self.properties = propertyDict ?? [:]
         super.init()
+
         if self is UsergridUser {
             self.properties[UsergridEntityProperties.EntityType.stringValue] = UsergridUser.USER_ENTITY_TYPE
         } else if self is UsergridDevice {
@@ -122,9 +123,14 @@
         } else {
             self.properties[UsergridEntityProperties.EntityType.stringValue] = type
         }
+
         if let entityName = name {
             self.properties[UsergridEntityProperties.Name.stringValue] = entityName
         }
+
+        if let fileMetaData = self.properties.removeValueForKey(UsergridFileMetaData.FILE_METADATA) as? [String:AnyObject] {
+            self.fileMetaData = UsergridFileMetaData(fileMetaDataJSON: fileMetaData)
+        }
     }
 
     internal func copyInternalsFromEntity(entity:UsergridEntity) {
@@ -149,15 +155,13 @@
     - returns: A `UsergridEntity` object provided that the `type` key within the dictionay exists. Otherwise nil.
     */
     public class func entity(jsonDict jsonDict: [String:AnyObject]) -> UsergridEntity? {
-        if let type = jsonDict[UsergridEntityProperties.EntityType.stringValue] as? String {
-            if let mapping = UsergridEntity.subclassMappings[type] {
-                return mapping.init(type: type,propertyDict:jsonDict)
-            } else {
-                return UsergridEntity(type:type, propertyDict:jsonDict)
-            }
-        } else {
-            return nil
+        guard let type = jsonDict[UsergridEntityProperties.EntityType.stringValue] as? String
+            else {
+                return nil
         }
+
+        let mapping = UsergridEntity.subclassMappings[type] ?? UsergridEntity.self
+        return mapping.init(type: type, propertyDict: jsonDict)
     }
 
     /**
@@ -392,17 +396,17 @@
     private func getEntitySpecificProperty(entityProperty: UsergridEntityProperties) -> AnyObject? {
         var propertyValue: AnyObject? = nil
         switch entityProperty {
-        case .UUID,.EntityType,.Name :
-            propertyValue = self.properties[entityProperty.stringValue]
-        case .Created,.Modified :
-            if let utcTimeStamp = self.properties[entityProperty.stringValue] as? Int {
-                propertyValue = NSDate(utcTimeStamp: utcTimeStamp.description)
+            case .UUID,.EntityType,.Name :
+                propertyValue = self.properties[entityProperty.stringValue]
+            case .Created,.Modified :
+                if let milliseconds = self.properties[entityProperty.stringValue] as? Int {
+                    propertyValue = NSDate(milliseconds: milliseconds.description)
+                }
+            case .Location :
+                if let locationDict = self.properties[entityProperty.stringValue] as? [String:Double], lat = locationDict[ENTITY_LATITUDE], long = locationDict[ENTITY_LONGITUDE] {
+                    propertyValue = CLLocation(latitude: lat, longitude: long)
+                }
             }
-        case .Location :
-            if let locationDict = self.properties[entityProperty.stringValue] as? [String:Double], lat = locationDict[ENTITY_LATITUDE], long = locationDict[ENTITY_LONGITUDE] {
-                propertyValue = CLLocation(latitude: lat, longitude: long)
-            }
-        }
         return propertyValue
     }
 
@@ -424,15 +428,17 @@
     - parameter completion: An optional completion block that, if successful, will contain the reloaded `UsergridEntity` object.
     */
     public func reload(client:UsergridClient, completion: UsergridResponseCompletion? = nil) {
-        if let uuidOrName = self.uuidOrName {
-            client.GET(self.type, uuidOrName: uuidOrName) { (response) -> Void in
-                if let responseEntity = response.entity {
-                    self.copyInternalsFromEntity(responseEntity)
-                }
-                completion?(response: response)
+        guard let uuidOrName = self.uuidOrName
+            else {
+                completion?(response: UsergridResponse(client: client, errorName: "Entity cannot be reloaded.", errorDescription: "Entity has neither an UUID or name specified."))
+                return
+        }
+
+        client.GET(self.type, uuidOrName: uuidOrName) { response in
+            if let responseEntity = response.entity {
+                self.copyInternalsFromEntity(responseEntity)
             }
-        } else {
-            completion?(response: UsergridResponse(client: client, errorName: "Entity cannot be reloaded.", errorDescription: "Entity has neither an UUID or name specified."))
+            completion?(response: response)
         }
     }
 
@@ -453,19 +459,19 @@
     */
     public func save(client:UsergridClient, completion: UsergridResponseCompletion? = nil) {
         if let _ = self.uuid { // If UUID exists we PUT otherwise POST
-            client.PUT(self, completion: { (response) -> Void in
+            client.PUT(self) { response in
                 if let responseEntity = response.entity {
                     self.copyInternalsFromEntity(responseEntity)
                 }
                 completion?(response: response)
-            })
+            }
         } else {
-            client.POST(self, completion: { (response) -> Void in
+            client.POST(self) { response in
                 if let responseEntity = response.entity {
                     self.copyInternalsFromEntity(responseEntity)
                 }
                 completion?(response: response)
-            })
+            }
         }
     }
 
@@ -475,7 +481,7 @@
     - parameter completion: An optional completion block.
     */
     public func remove(completion: UsergridResponseCompletion? = nil) {
-        Usergrid.sharedInstance.DELETE(self, completion: completion)
+        self.remove(Usergrid.sharedInstance, completion: completion)
     }
 
     /**
@@ -498,7 +504,7 @@
     - parameter completion: An optional completion block.
     */
     public func uploadAsset(asset:UsergridAsset, progress:UsergridAssetRequestProgress? = nil, completion:UsergridAssetUploadCompletion? = nil) {
-        Usergrid.sharedInstance.uploadAsset(self, asset: asset, progress:progress, completion:completion)
+        self.uploadAsset(Usergrid.sharedInstance, asset: asset, progress: progress, completion: completion)
     }
 
     /**
@@ -521,7 +527,7 @@
     - parameter completion:  An optional completion block.
     */
     public func downloadAsset(contentType:String, progress:UsergridAssetRequestProgress? = nil, completion:UsergridAssetDownloadCompletion? = nil) {
-        Usergrid.sharedInstance.downloadAsset(self, contentType: contentType, progress:progress, completion: completion)
+        self.downloadAsset(Usergrid.sharedInstance, contentType: contentType, progress: progress, completion: completion)
     }
 
     /**
@@ -546,7 +552,7 @@
     - parameter completion:   An optional completion block.
     */
     public func connect(relationship:String, toEntity:UsergridEntity, completion: UsergridResponseCompletion? = nil) {
-        Usergrid.sharedInstance.connect(self, relationship: relationship, to: toEntity, completion: completion)
+        self.connect(Usergrid.sharedInstance, relationship: relationship, toEntity: toEntity, completion: completion)
     }
 
     /**
@@ -569,7 +575,7 @@
     - parameter completion:   An optional completion block.
     */
     public func disconnect(relationship:String, fromEntity:UsergridEntity, completion: UsergridResponseCompletion? = nil) {
-        Usergrid.sharedInstance.disconnect(self, relationship: relationship, from: fromEntity, completion: completion)
+        self.disconnect(Usergrid.sharedInstance, relationship: relationship, fromEntity: fromEntity, completion: completion)
     }
 
     /**
@@ -592,8 +598,8 @@
     - parameter query:          The optional query.
     - parameter completion:     An optional completion block.
     */
-    public func getConnections(direction:UsergridDirection, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
-        Usergrid.sharedInstance.getConnections(direction, entity: self, relationship: relationship, query:query, completion: completion)
+    public func getConnections(direction:UsergridDirection, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
+        self.getConnections(Usergrid.sharedInstance, direction: direction, relationship: relationship, query: query, completion: completion)
     }
 
     /**
@@ -605,7 +611,25 @@
     - parameter query:        The optional query.
     - parameter completion:   An optional completion block.
     */
-    public func getConnections(client:UsergridClient, direction:UsergridDirection, relationship:String, query:UsergridQuery?, completion:UsergridResponseCompletion? = nil) {
+    public func getConnections(client:UsergridClient, direction:UsergridDirection, relationship:String, query:UsergridQuery? = nil, completion:UsergridResponseCompletion? = nil) {
         client.getConnections(direction, entity: self, relationship: relationship, query:query, completion: completion)
     }
+
+    // MARK: - Helper methods -
+
+    /**
+     Determines if the two `UsergridEntity` objects are equal.  i.e. they have the same non nil uuidOrName.
+
+     - parameter entity: The entity to check.
+
+     - returns: If the two `UsergridEntity` objects are equal.  i.e. they have the same non nil uuidOrName.
+     */
+    public func isEqualToEntity(entity: UsergridEntity?) -> Bool {
+        guard let selfUUID = self.uuidOrName,
+              let entityUUID = entity?.uuidOrName
+            else {
+                return false
+        }
+        return selfUUID == entityUUID
+    }
 }
\ No newline at end of file
diff --git a/sdks/swift/Source/UsergridEnums.swift b/sdks/swift/Source/UsergridEnums.swift
index 1cc0c9c..fd0b625 100644
--- a/sdks/swift/Source/UsergridEnums.swift
+++ b/sdks/swift/Source/UsergridEnums.swift
@@ -27,26 +27,28 @@
 import Foundation
 
 /**
-An enumeration that is used to determine what the `UsergridClient` will fallback to depending on certain authorization conditions.
+An enumeration that is used to determine what the `UsergridClient` will use for authorization.
 */
-@objc public enum UsergridAuthFallback : Int {
+@objc public enum UsergridAuthMode : Int {
 
     // MARK: - Values -
 
     /**
-    If a non-expired user auth token exists in `UsergridClient.currentUser`, this token is used to authenticate all API calls.
-
     If the API call fails, the activity is treated as a failure with an appropriate HTTP status code.
-
-    If a non-expired user auth token does not exist, all API calls will be made unauthenticated.
     */
     case None
+
     /**
-    If a non-expired user auth token exists in `UsergridClient.currentUser`, this token is used to authenticate all API calls.
+     If a non-expired `UsergridUserAuth` exists in `UsergridClient.currentUser`, this token is used to authenticate all API calls.
 
-    If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authFallback=.None).
+     If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authMode=.None).
+     */
+    case User
 
-    If a non-expired user auth does not exist, all API calls will be made using stored app auth.
+    /**
+    If a non-expired `UsergridAppAuth` exists in `UsergridClient.appAuth`, this token is used to authenticate all API calls.
+
+    If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authMode=.None).
     */
     case App
 }
@@ -406,7 +408,7 @@
 
 let DEVICE_MODEL = "deviceModel"
 let DEVICE_PLATFORM = "devicePlatform"
-let DEVICE_OSVERSION = "devicePlatform"
+let DEVICE_OSVERSION = "deviceOSVersion"
 
 let ASSET_IMAGE_PNG = "image/png"
 let ASSET_IMAGE_JPEG = "image/jpeg"
diff --git a/sdks/swift/Source/UsergridExtensions.swift b/sdks/swift/Source/UsergridExtensions.swift
index 050145c..30ff3a7 100644
--- a/sdks/swift/Source/UsergridExtensions.swift
+++ b/sdks/swift/Source/UsergridExtensions.swift
@@ -26,12 +26,74 @@
 
 import Foundation
 
-internal extension NSDate {
-    convenience init(utcTimeStamp: String) {
-        self.init(timeIntervalSince1970: (utcTimeStamp as NSString).doubleValue / 1000 )
+private let kUsergrid_Milliseconds_Per_Second = 1000
+
+/// Extension methods to help create and manipulate `NSDate` objects returned by Usergrid.
+public extension NSDate {
+    /**
+     Creates a new `NSDate` object with the given milliseconds.
+
+     - parameter milliseconds: the milliseconds
+
+     - returns: A new `NSDate` object.
+     */
+    public convenience init(milliseconds: String) {
+        self.init(timeIntervalSince1970: (milliseconds as NSString).doubleValue / Double(kUsergrid_Milliseconds_Per_Second) )
     }
-    func utcTimeStamp() -> Int {
-        return Int(self.timeIntervalSince1970 * 1000)
+    /**
+     Converts the `NSDate` object to milliseconds.
+
+     - returns: The number of milliseconds corresponding to the date.
+     */
+    public func dateAsMilliseconds() -> Int {
+        return Int(self.timeIntervalSince1970 * Double(kUsergrid_Milliseconds_Per_Second))
+    }
+    /**
+     Converts the `NSDate` object to milliseconds and returns the value as a string.
+
+     - returns: The number of milliseconds corresponding to the date as a string.
+     */
+    public func dateAsMillisecondsString() -> String {
+        return NSDate.stringFromMilleseconds(self.dateAsMilliseconds())
+    }
+    /**
+     Converts the number of milliseconds to a string.
+
+     - parameter milliseconds: the milliseconds to convert
+
+     - returns: The milliseconds as a string.
+     */
+    public static func stringFromMilleseconds(milliseconds:Int) -> String {
+        return NSNumber(longLong: Int64(milliseconds)).stringValue
+    }
+    /**
+     Converts the `NSDate` object to the corresponding UNIX time stamp as a string.
+
+     - returns: The UNIX time stamp as a string.
+     */
+    public static func unixTimeStampString() -> String {
+        return NSDate.stringFromMilleseconds(NSDate.nowAsMilliseconds())
+    }
+    /**
+     Converts the `NSDate` object to the corresponding UNIX time stamp.
+
+     - returns: The UNIX time stamp.
+     */
+    public static func unixTimeStamp() -> Int {
+        return NSDate.nowAsMilliseconds()
+    }
+    /**
+     Converts the current date to milliseconds.
+
+     - returns: The milliseconds of the current date.
+     */
+    public static func nowAsMilliseconds() -> Int {
+        var tv = timeval()
+        let currentMillisecondTime = withUnsafeMutablePointer(&tv, { (t: UnsafeMutablePointer<timeval>) -> Int in
+            gettimeofday(t, nil)
+            return (Int(t.memory.tv_sec) * kUsergrid_Milliseconds_Per_Second) + (Int(t.memory.tv_usec) / kUsergrid_Milliseconds_Per_Second)
+        })
+        return currentMillisecondTime
     }
 }
 
@@ -39,4 +101,12 @@
     func isUuid() -> Bool {
         return (NSUUID(UUIDString: self) != nil) ? true : false
     }
-}
\ No newline at end of file
+}
+
+internal extension Dictionary {
+    mutating func update(other:Dictionary) {
+        for (key,value) in other {
+            self.updateValue(value, forKey:key)
+        }
+    }
+}
diff --git a/sdks/swift/Source/UsergridFileMetaData.swift b/sdks/swift/Source/UsergridFileMetaData.swift
index c3e7f52..4908430 100644
--- a/sdks/swift/Source/UsergridFileMetaData.swift
+++ b/sdks/swift/Source/UsergridFileMetaData.swift
@@ -70,7 +70,7 @@
         self.lastModifiedTimeStamp = fileMetaDataJSON["last-modified"] as? Int ?? 0
 
         if self.lastModifiedTimeStamp > 0 {
-            self.lastModifiedDate = NSDate(utcTimeStamp: self.lastModifiedTimeStamp.description)
+            self.lastModifiedDate = NSDate(milliseconds: self.lastModifiedTimeStamp.description)
         } else {
             self.lastModifiedDate = nil
         }
@@ -93,7 +93,7 @@
         self.lastModifiedTimeStamp = aDecoder.decodeIntegerForKey("last-modified") ?? 0
 
         if self.lastModifiedTimeStamp > 0 {
-            self.lastModifiedDate = NSDate(utcTimeStamp: self.lastModifiedTimeStamp.description)
+            self.lastModifiedDate = NSDate(milliseconds: self.lastModifiedTimeStamp.description)
         } else {
             self.lastModifiedDate = nil
         }
diff --git a/sdks/swift/Source/UsergridQuery.swift b/sdks/swift/Source/UsergridQuery.swift
index 7d08e35..c2a7000 100644
--- a/sdks/swift/Source/UsergridQuery.swift
+++ b/sdks/swift/Source/UsergridQuery.swift
@@ -528,7 +528,7 @@
             urlAppend += "\(UsergridQuery.CURSOR)=\(cursorString)"
         }
         
-        var requirementsString = self.constructRequirementString()
+        var requirementsString = UsergridQuery.SELECT_ALL + UsergridQuery.SPACE + self.constructRequirementString()
         let orderByString = self.constructOrderByString()
         if !orderByString.isEmpty {
             requirementsString += orderByString
@@ -577,6 +577,7 @@
     private static let ORDER_BY = "order by"
     private static let QL = "ql"
     private static let QUESTION_MARK = "?"
+    private static let SELECT_ALL = "select *"
     private static let SPACE = " "
     private static let WITHIN = "within"
     
diff --git a/sdks/swift/Source/UsergridRequest.swift b/sdks/swift/Source/UsergridRequest.swift
index dd1f561..0a651e2 100644
--- a/sdks/swift/Source/UsergridRequest.swift
+++ b/sdks/swift/Source/UsergridRequest.swift
@@ -177,7 +177,7 @@
 
     private static let AUTHORIZATION = "Authorization"
     private static let ACCESS_TOKEN = "access_token"
-    private static let APPLICATION_JSON = "application/json"
+    private static let APPLICATION_JSON = "application/json; charset=utf-8"
     private static let BEARER = "Bearer"
     private static let CONTENT_LENGTH = "Content-Length"
     private static let CONTENT_TYPE = "Content-Type"
diff --git a/sdks/swift/Source/UsergridRequestManager.swift b/sdks/swift/Source/UsergridRequestManager.swift
index ccd41e5..46a4213 100644
--- a/sdks/swift/Source/UsergridRequestManager.swift
+++ b/sdks/swift/Source/UsergridRequestManager.swift
@@ -53,7 +53,7 @@
 
         self.session = NSURLSession(configuration:  config,
                                     delegate:       UsergridSessionDelegate(),
-                                    delegateQueue:  NSOperationQueue.mainQueue())
+                                    delegateQueue:  nil)
     }
 
     deinit {
@@ -62,7 +62,10 @@
 
     func performRequest(request:UsergridRequest, completion:UsergridResponseCompletion?) {
         session.dataTaskWithRequest(request.buildNSURLRequest()) { [weak self] (data, response, error) -> Void in
-            completion?(response: UsergridResponse(client:self?.client, data: data, response: response as? NSHTTPURLResponse, error: error))
+            let response = UsergridResponse(client:self?.client, data: data, response: response as? NSHTTPURLResponse, error: error)
+            dispatch_async(dispatch_get_main_queue()) {
+                completion?(response: response)
+            }
         }.resume()
     }
 }
@@ -71,7 +74,7 @@
 // MARK: - Authentication -
 extension UsergridRequestManager {
 
-    static func getTokenAndExpiryFromResponseJSON(jsonDict:[String:AnyObject]) -> (String?,NSDate?) {
+    static func getTokenAndExpiryFromResponseJSON(jsonDict:[String:AnyObject]) -> (token:String?,expiry:NSDate?) {
         var token: String? = nil
         var expiry: NSDate? = nil
         if let accessToken = jsonDict["access_token"] as? String {
@@ -79,7 +82,7 @@
         }
         if let expiresIn = jsonDict["expires_in"] as? Int {
             let expiresInAdjusted = expiresIn - 5000
-            expiry = NSDate(timeIntervalSinceNow: Double(expiresInAdjusted))
+            expiry = NSDate(timeIntervalSinceNow: NSTimeInterval(expiresInAdjusted))
         }
         return (token,expiry)
     }
@@ -87,27 +90,30 @@
     func performUserAuthRequest(userAuth:UsergridUserAuth, request:UsergridRequest, completion:UsergridUserAuthCompletionBlock?) {
         session.dataTaskWithRequest(request.buildNSURLRequest()) { (data, response, error) -> Void in
             let dataAsJSON = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)
+
+            var createdUser: UsergridUser? = nil
+            var responseError: UsergridResponseError? = nil
+
             if let jsonDict = dataAsJSON as? [String:AnyObject] {
                 let tokenAndExpiry = UsergridRequestManager.getTokenAndExpiryFromResponseJSON(jsonDict)
-                userAuth.accessToken = tokenAndExpiry.0
-                userAuth.expiry = tokenAndExpiry.1
+                userAuth.accessToken = tokenAndExpiry.token
+                userAuth.expiry = tokenAndExpiry.expiry
 
-                var user: UsergridUser?
                 if let userDict = jsonDict[UsergridUser.USER_ENTITY_TYPE] as? [String:AnyObject] {
-                    if let createdUser = UsergridEntity.entity(jsonDict: userDict) as? UsergridUser {
-                        createdUser.auth = userAuth
-                        user = createdUser
+                    if let newUser = UsergridEntity.entity(jsonDict: userDict) as? UsergridUser {
+                        newUser.auth = userAuth
+                        createdUser = newUser
                     }
                 }
-                if let createdUser = user {
-                    completion?(auth: userAuth, user:createdUser, error: nil)
-                } else {
-                    let error = UsergridResponseError(jsonDictionary: jsonDict) ?? UsergridResponseError(errorName: "Auth Failed.", errorDescription: "Error Description: \(error?.localizedDescription).")
-                    completion?(auth: userAuth, user:nil, error:error)
+                if createdUser == nil {
+                    responseError = UsergridResponseError(jsonDictionary: jsonDict) ?? UsergridResponseError(errorName: "Auth Failed.", errorDescription: "Error Description: \(error?.localizedDescription).")
                 }
             } else {
-                let error = UsergridResponseError(errorName: "Auth Failed.", errorDescription: "Error Description: \(error?.localizedDescription).")
-                completion?(auth: userAuth, user:nil, error: error)
+                responseError = UsergridResponseError(errorName: "Auth Failed.", errorDescription: "Error Description: \(error?.localizedDescription).")
+            }
+
+            dispatch_async(dispatch_get_main_queue()) {
+                completion?(auth: userAuth, user: createdUser, error: responseError)
             }
         }.resume()
     }
@@ -115,14 +121,19 @@
     func performAppAuthRequest(appAuth: UsergridAppAuth, request: UsergridRequest, completion: UsergridAppAuthCompletionBlock?) {
         session.dataTaskWithRequest(request.buildNSURLRequest()) { (data, response, error) -> Void in
             let dataAsJSON = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)
+
+            var responseError: UsergridResponseError? = nil
+
             if let jsonDict = dataAsJSON as? [String:AnyObject] {
                 let tokenAndExpiry = UsergridRequestManager.getTokenAndExpiryFromResponseJSON(jsonDict)
-                appAuth.accessToken = tokenAndExpiry.0
-                appAuth.expiry = tokenAndExpiry.1
-                completion?(auth: appAuth, error: nil)
+                appAuth.accessToken = tokenAndExpiry.token
+                appAuth.expiry = tokenAndExpiry.expiry
             } else {
-                let error = UsergridResponseError(errorName: "Auth Failed.", errorDescription: "Error Description: \(error?.localizedDescription).")
-                completion?(auth: nil, error: error)
+                responseError = UsergridResponseError(errorName: "Auth Failed.", errorDescription: "Error Description: \(error?.localizedDescription).")
+            }
+
+            dispatch_async(dispatch_get_main_queue()) {
+                completion?(auth: appAuth, error: responseError)
             }
         }.resume()
     }
@@ -134,11 +145,17 @@
     func performAssetDownload(contentType:String, usergridRequest:UsergridRequest, progress: UsergridAssetRequestProgress? = nil, completion:UsergridAssetDownloadCompletion? = nil) {
         let downloadTask = session.downloadTaskWithRequest(usergridRequest.buildNSURLRequest())
         let requestWrapper = UsergridAssetRequestWrapper(session: self.session, sessionTask: downloadTask, progress: progress)  { (request) -> Void in
+            var asset: UsergridAsset? = nil
+            var responseError: UsergridResponseError? = nil
+
             if let assetData = request.responseData where assetData.length > 0 {
-                let asset = UsergridAsset(data: assetData, contentType: contentType)
-                completion?(asset: asset, error:nil)
+                asset = UsergridAsset(data: assetData, contentType: contentType)
             } else {
-                completion?(asset: nil, error: "Downloading asset failed.  No data was recieved.")
+                responseError = UsergridResponseError(errorName: "Download Failed.", errorDescription: "Downloading asset failed.  No data was recieved.")
+            }
+
+            dispatch_async(dispatch_get_main_queue()) {
+                completion?(asset: asset, error: responseError)
             }
         }
         self.sessionDelegate.addRequestDelegate(requestWrapper.sessionTask, requestWrapper:requestWrapper)
@@ -148,7 +165,10 @@
     func performAssetUpload(usergridRequest:UsergridAssetUploadRequest, progress:UsergridAssetRequestProgress? = nil, completion: UsergridAssetUploadCompletion? = nil) {
         let uploadTask = session.uploadTaskWithRequest(usergridRequest.buildNSURLRequest(), fromData: usergridRequest.multiPartHTTPBody)
         let requestWrapper = UsergridAssetRequestWrapper(session: self.session, sessionTask: uploadTask, progress: progress)  { [weak self] (request) -> Void in
-            completion?(response: UsergridResponse(client: self?.client, data: request.responseData, response: request.response as? NSHTTPURLResponse, error: request.error),asset:usergridRequest.asset,error:nil)
+            let response = UsergridResponse(client: self?.client, data: request.responseData, response: request.response as? NSHTTPURLResponse, error: request.error)
+            dispatch_async(dispatch_get_main_queue()) {
+                completion?(asset: usergridRequest.asset, response: response)
+            }
         }
         self.sessionDelegate.addRequestDelegate(requestWrapper.sessionTask, requestWrapper:requestWrapper)
         requestWrapper.sessionTask.resume()
diff --git a/sdks/swift/Source/UsergridResponse.swift b/sdks/swift/Source/UsergridResponse.swift
index d2b025d..b9e58ec 100644
--- a/sdks/swift/Source/UsergridResponse.swift
+++ b/sdks/swift/Source/UsergridResponse.swift
@@ -95,11 +95,11 @@
     public var hasNextPage: Bool { return self.cursor != nil }
 
     /// The string value.
-    public var stringValue : String? {
+    public var stringValue : String {
         if let responseJSON = self.responseJSON {
-            return NSString(data: try! NSJSONSerialization.dataWithJSONObject(responseJSON, options: .PrettyPrinted), encoding: NSUTF8StringEncoding) as? String
+            return NSString(data: try! NSJSONSerialization.dataWithJSONObject(responseJSON, options: .PrettyPrinted), encoding: NSUTF8StringEncoding) as? String ?? ""
         } else {
-            return error?.description
+            return error?.description ?? ""
         }
     }
 
diff --git a/sdks/swift/Source/UsergridUser.swift b/sdks/swift/Source/UsergridUser.swift
index 0c98b5f..17415ba 100644
--- a/sdks/swift/Source/UsergridUser.swift
+++ b/sdks/swift/Source/UsergridUser.swift
@@ -291,7 +291,12 @@
     - parameter completion: The optional completion block.
     */
     public func create(client: UsergridClient, completion: UsergridResponseCompletion? = nil) {
-        client.POST(self,completion:completion)
+        client.POST(self) { (response) -> Void in
+            if response.ok, let createdUser = response.user {
+                self.copyInternalsFromEntity(createdUser)
+            }
+            completion?(response: response)
+        }
     }
 
     /**
@@ -364,12 +369,13 @@
      - parameter completion: The optional completion block.
      */
     public func reauthenticate(client: UsergridClient, completion: UsergridUserAuthCompletionBlock? = nil) {
-        if let userAuth = self.auth {
-            client.authenticateUser(userAuth, completion: completion)
-        } else {
-            let error = UsergridResponseError(errorName: "Invalid UsergridUserAuth.", errorDescription: "No UsergridUserAuth found on the UsergridUser.")
-            completion?(auth: nil, user: self, error: error)
+        guard let userAuth = self.auth
+            else {
+                completion?(auth: nil, user: self, error: UsergridResponseError(errorName: "Invalid UsergridUserAuth.", errorDescription: "No UsergridUserAuth found on the UsergridUser."))
+                return
         }
+
+        client.authenticateUser(userAuth, setAsCurrentUser:self.isEqualToEntity(client.currentUser), completion: completion)
     }
 
     /**
@@ -388,15 +394,16 @@
     - parameter completion: The optional completion block.
     */
     public func logout(client: UsergridClient, completion:UsergridResponseCompletion? = nil) {
-        if self === client.currentUser {
-            client.logoutCurrentUser(completion)
-        } else if let uuidOrUsername = self.uuidOrUsername, accessToken = self.auth?.accessToken {
-            client.logoutUser(uuidOrUsername, token: accessToken) { (response) in
-                self.auth = nil
-                completion?(response: response)
-            }
-        } else {
-            completion?(response: UsergridResponse(client:client, errorName:"Logout Failed.", errorDescription:"UUID or Access Token not found on UsergridUser object."))
+        guard let uuidOrUsername = self.uuidOrUsername,
+              let accessToken = self.auth?.accessToken
+            else {
+                completion?(response: UsergridResponse(client:client, errorName:"Logout Failed.", errorDescription:"UUID or Access Token not found on UsergridUser object."))
+                return
+        }
+        
+        client.logoutUser(uuidOrUsername, token: accessToken) { (response) in
+            self.auth = nil
+            completion?(response: response)
         }
     }
 
@@ -420,12 +427,31 @@
     public func connectToDevice(client:UsergridClient, device:UsergridDevice? = nil, completion:UsergridResponseCompletion? = nil) {
         let deviceToConnect = device ?? UsergridDevice.sharedDevice
         guard let _ = deviceToConnect.uuidOrName
-        else {
+            else {
             completion?(response: UsergridResponse(client: client, errorName: "Device cannot be connected to User.", errorDescription: "Device has neither an UUID or name specified."))
             return
         }
 
-        self.connect(client, relationship: "devices", toEntity: deviceToConnect, completion: completion)
+        self.connect(client, relationship: "", toEntity: deviceToConnect, completion: completion)
+    }
+
+    /**
+     Gets the connected device using the shared instance of `UsergridClient`.
+
+     - parameter completion: The optional completion block.
+     */
+    public func getConnectedDevice(completion:UsergridResponseCompletion? = nil) {
+        self.getConnectedDevice(Usergrid.sharedInstance, completion: completion)
+    }
+
+    /**
+     Gets the connected device.
+
+     - parameter client:     The `UsergridClient` object to use for connecting.
+     - parameter completion: The optional completion block.
+     */
+    public func getConnectedDevice(client:UsergridClient, completion:UsergridResponseCompletion? = nil) {
+        client.getConnections(.Out, entity: self, relationship: "device", completion: completion)
     }
 
     /**
@@ -453,7 +479,7 @@
                 return
         }
 
-        self.disconnect(client, relationship: "devices", fromEntity: deviceToDisconnectFrom, completion: completion)
+        self.disconnect(client, relationship: "", fromEntity: deviceToDisconnectFrom, completion: completion)
     }
 
     private func getUserSpecificProperty(userProperty: UsergridUserProperties) -> AnyObject? {
diff --git a/sdks/swift/Tests/ASSET_Tests.swift b/sdks/swift/Tests/ASSET_Tests.swift
index 23c9316..c6f860f 100644
--- a/sdks/swift/Tests/ASSET_Tests.swift
+++ b/sdks/swift/Tests/ASSET_Tests.swift
@@ -29,19 +29,56 @@
 
 class ASSET_Tests: XCTestCase {
 
-    let sharedClient = Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
-
     static let collectionName = "books"
     static let entityUUID = "f4078aca-2fb1-11e5-8eb2-e13f8369aad1"
-    static let imageLocation = "TestAssets/test.png"
+    static let pngLocation = "TestAssets/test.png"
+    static let jpgLocation = "TestAssets/UsergridGuy.jpg"
     static let imageName = "test"
 
+    override func setUp() {
+        super.setUp()
+        Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
+        Usergrid.persistCurrentUserInKeychain = false
+    }
+
+    override func tearDown() {
+        Usergrid._sharedClient = nil
+        super.tearDown()
+    }
+
     func getFullPathOfFile(fileLocation:String) -> String {
         return (NSBundle(forClass: object_getClass(self)).resourcePath! as NSString).stringByAppendingPathComponent(fileLocation)
     }
 
+    func test_ASSET_INIT() {
+        var filePath = self.getFullPathOfFile(ASSET_Tests.pngLocation)
+        var image = UIImage(contentsOfFile: filePath)
+        var asset = UsergridAsset(filename:ASSET_Tests.imageName,image: image!)
+        XCTAssertNotNil(asset)
+        XCTAssertNotNil(asset!.data)
+        XCTAssertNotNil(asset!.filename)
+        XCTAssertEqual(asset!.contentType, UsergridImageContentType.Png.stringValue)
+        XCTAssertTrue(asset!.contentLength > 0)
+
+        asset = UsergridAsset(filename:ASSET_Tests.imageName, fileURL: NSURL(fileURLWithPath: filePath))
+        XCTAssertNotNil(asset)
+        XCTAssertNotNil(asset!.data)
+        XCTAssertNotNil(asset!.filename)
+        XCTAssertEqual(asset!.contentType, UsergridImageContentType.Png.stringValue)
+        XCTAssertTrue(asset!.contentLength > 0)
+
+        filePath = self.getFullPathOfFile(ASSET_Tests.jpgLocation)
+        image = UIImage(contentsOfFile: filePath)
+        asset = UsergridAsset(filename:nil,image: image!, imageContentType:.Jpeg)
+        XCTAssertNotNil(asset)
+        XCTAssertNotNil(asset!.data)
+        XCTAssertEqual(asset!.filename,UsergridAsset.DEFAULT_FILE_NAME)
+        XCTAssertEqual(asset!.contentType, UsergridImageContentType.Jpeg.stringValue)
+        XCTAssertTrue(asset!.contentLength > 0)
+    }
+
     func test_IMAGE_UPLOAD() {
-        let getExpect = self.expectationWithDescription("\(__FUNCTION__)")
+        let getExpect = self.expectationWithDescription("\(#function)")
         let uploadProgress : UsergridAssetRequestProgress = { (bytes,expected) in
             print("UPLOAD PROGRESS BLOCK: BYTES:\(bytes) --- EXPECTED:\(expected)")
         }
@@ -50,24 +87,42 @@
         }
 
         Usergrid.GET(ASSET_Tests.collectionName, uuidOrName:ASSET_Tests.entityUUID) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
+
             let entity = response.first!
             XCTAssertNotNil(entity)
+            XCTAssertFalse(entity.isUser)
 
-            let imagePath = self.getFullPathOfFile(ASSET_Tests.imageLocation)
+            let imagePath = self.getFullPathOfFile(ASSET_Tests.pngLocation)
             XCTAssertNotNil(imagePath)
 
             let localImage = UIImage(contentsOfFile: imagePath)
             XCTAssertNotNil(localImage)
 
-            let asset = UsergridAsset(fileName:ASSET_Tests.imageName,image: localImage!)
+            let asset = UsergridAsset(filename:ASSET_Tests.imageName,image: localImage!)
             XCTAssertNotNil(asset)
 
-            entity.uploadAsset(self.sharedClient, asset:asset!, progress:uploadProgress) { (response, uploadedAsset, error) -> Void in
-                XCTAssertNotNil(asset)
-                XCTAssertNil(error)
+            entity.uploadAsset(asset!, progress:uploadProgress) { uploadedAsset,response in
+                XCTAssertTrue(NSThread.isMainThread())
                 XCTAssertTrue(response.ok)
+                XCTAssertNil(response.error)
+
+                XCTAssertNotNil(asset)
+                XCTAssertNotNil(uploadedAsset)
+                XCTAssertEqual(uploadedAsset!, asset!)
+
+                XCTAssertTrue(entity.hasAsset)
+                XCTAssertNotNil(entity.fileMetaData)
+                XCTAssertNotNil(entity.fileMetaData!.eTag)
+                XCTAssertNotNil(entity.fileMetaData!.checkSum)
+                XCTAssertNotNil(entity.fileMetaData!.contentType)
+                XCTAssertNotNil(entity.fileMetaData!.lastModifiedDate)
+                XCTAssertEqual(entity.asset!.contentLength, entity.fileMetaData!.contentLength)
+                XCTAssertEqual(entity.asset!.contentType, entity.fileMetaData!.contentType)
+
                 entity.downloadAsset(UsergridImageContentType.Png.stringValue, progress:downloadProgress)
                 { (downloadedAsset, error) -> Void in
+                    XCTAssertTrue(NSThread.isMainThread())
                     XCTAssertNotNil(downloadedAsset)
                     XCTAssertNil(error)
                     let downloadedImage = UIImage(data: downloadedAsset!.data)
@@ -77,6 +132,149 @@
                 }
             }
         }
-        self.waitForExpectationsWithTimeout(10, handler: nil)
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+    func deleteUser(user:UsergridUser,expectation:XCTestExpectation) {
+        user.remove() { removeResponse in
+            XCTAssertTrue(NSThread.isMainThread())
+            XCTAssertNotNil(removeResponse)
+            XCTAssertTrue(removeResponse.ok)
+            XCTAssertNotNil(removeResponse.user)
+            XCTAssertNotNil(removeResponse.users)
+            print(removeResponse.error)
+            expectation.fulfill()
+        }
+    }
+
+    func test_ATTACH_ASSET_TO_CURRENT_USER() {
+        let userAssetExpect = self.expectationWithDescription("\(#function)")
+
+        let user = UsergridUser(name:User_Tests.name, email:User_Tests.email, username:User_Tests.username, password:User_Tests.password)
+        let uploadProgress : UsergridAssetRequestProgress = { (bytes,expected) in
+            print("UPLOAD PROGRESS BLOCK: BYTES:\(bytes) --- EXPECTED:\(expected)")
+        }
+        let downloadProgress : UsergridAssetRequestProgress = { (bytes,expected) in
+            print("DOWNLOAD PROGRESS BLOCK: BYTES:\(bytes) --- EXPECTED:\(expected)")
+        }
+
+        UsergridUser.checkAvailable(user.email, username: user.username) { error,available in
+
+            XCTAssertTrue(NSThread.isMainThread())
+            XCTAssertNil(error)
+            XCTAssertTrue(available)
+
+            user.create() { (createResponse) in
+                XCTAssertTrue(NSThread.isMainThread())
+                XCTAssertNotNil(createResponse)
+                XCTAssertTrue(createResponse.ok)
+                XCTAssertNotNil(createResponse.user)
+                XCTAssertNotNil(createResponse.users)
+                XCTAssertNotNil(user.uuid)
+
+                user.login(user.username!, password:User_Tests.password) { (auth, loggedInUser, error) -> Void in
+                    XCTAssertTrue(NSThread.isMainThread())
+                    XCTAssertNil(error)
+                    XCTAssertNotNil(auth)
+                    XCTAssertNotNil(loggedInUser)
+                    XCTAssertEqual(auth, user.auth!)
+
+                    Usergrid.authenticateUser(user.auth!) { auth,currentUser,error in
+                        XCTAssertTrue(NSThread.isMainThread())
+                        XCTAssertNil(error)
+                        XCTAssertNotNil(auth)
+                        XCTAssertEqual(auth, user.auth!)
+
+                        XCTAssertNotNil(currentUser)
+                        XCTAssertNotNil(Usergrid.currentUser)
+                        XCTAssertEqual(currentUser, Usergrid.currentUser!)
+
+                        let imagePath = self.getFullPathOfFile(ASSET_Tests.pngLocation)
+                        XCTAssertNotNil(imagePath)
+
+                        let localImage = UIImage(contentsOfFile: imagePath)
+                        XCTAssertNotNil(localImage)
+
+                        let asset = UsergridAsset(filename:ASSET_Tests.imageName,image: localImage!)
+                        XCTAssertNotNil(asset)
+
+                        Usergrid.currentUser!.uploadAsset(asset!, progress:uploadProgress) { uploadedAsset,response in
+                            XCTAssertTrue(NSThread.isMainThread())
+                            XCTAssertTrue(response.ok)
+                            XCTAssertNil(response.error)
+
+                            XCTAssertNotNil(asset)
+                            XCTAssertNotNil(uploadedAsset)
+                            XCTAssertEqual(uploadedAsset!, asset!)
+
+                            XCTAssertTrue(Usergrid.currentUser!.hasAsset)
+                            XCTAssertNotNil(Usergrid.currentUser!.fileMetaData)
+                            XCTAssertNotNil(Usergrid.currentUser!.fileMetaData!.eTag)
+                            XCTAssertNotNil(Usergrid.currentUser!.fileMetaData!.checkSum)
+                            XCTAssertNotNil(Usergrid.currentUser!.fileMetaData!.contentType)
+                            XCTAssertNotNil(Usergrid.currentUser!.fileMetaData!.lastModifiedDate)
+                            XCTAssertEqual(Usergrid.currentUser!.asset!.contentLength, Usergrid.currentUser!.fileMetaData!.contentLength)
+                            XCTAssertEqual(Usergrid.currentUser!.asset!.contentType, Usergrid.currentUser!.fileMetaData!.contentType)
+
+                            Usergrid.currentUser!.downloadAsset(UsergridImageContentType.Png.stringValue, progress:downloadProgress)
+                                { (downloadedAsset, error) -> Void in
+                                    XCTAssertTrue(NSThread.isMainThread())
+                                    XCTAssertNotNil(downloadedAsset)
+                                    XCTAssertNil(error)
+                                    let downloadedImage = UIImage(data: downloadedAsset!.data)
+                                    XCTAssertEqual(UIImagePNGRepresentation(localImage!), UIImagePNGRepresentation(downloadedImage!))
+                                    XCTAssertNotNil(downloadedImage)
+                                    self.deleteUser(Usergrid.currentUser!,expectation:userAssetExpect)
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+
+    func test_FILE_META_DATA_NSCODING() {
+        let fileMetaDataDict = ["content-type":"image/png",
+                                "etag":"dfa7421ea4f35d33e12ba93979a46b7e",
+                                "checkSum":"dfa7421ea4f35d33e12ba93979a46b7e",
+                                "content-length":1417896,
+                                "last-modified":1455728898545]
+        
+        let fileMetaData = UsergridFileMetaData(fileMetaDataJSON:fileMetaDataDict)
+
+        let fileMetaDataCodingData = NSKeyedArchiver.archivedDataWithRootObject(fileMetaData)
+        let newInstanceFromData = NSKeyedUnarchiver.unarchiveObjectWithData(fileMetaDataCodingData) as? UsergridFileMetaData
+        XCTAssertNotNil(newInstanceFromData)
+
+        if let newInstance = newInstanceFromData {
+            XCTAssertEqual(fileMetaData.eTag,newInstance.eTag)
+            XCTAssertEqual(fileMetaData.checkSum,newInstance.checkSum)
+            XCTAssertEqual(fileMetaData.contentType,newInstance.contentType)
+            XCTAssertEqual(fileMetaData.contentLength,newInstance.contentLength)
+            XCTAssertEqual(fileMetaData.lastModifiedDate,newInstance.lastModifiedDate)
+        }
+    }
+
+    func test_ASSET_NSCODING() {
+        let imagePath = self.getFullPathOfFile(ASSET_Tests.pngLocation)
+        let asset = UsergridAsset(filename:ASSET_Tests.imageName,fileURL: NSURL(fileURLWithPath: imagePath))
+        XCTAssertNotNil(asset)
+
+        if let originalAsset = asset {
+            let assetCodingData = NSKeyedArchiver.archivedDataWithRootObject(originalAsset)
+            let newInstanceFromData = NSKeyedUnarchiver.unarchiveObjectWithData(assetCodingData) as? UsergridAsset
+
+            XCTAssertNotNil(newInstanceFromData)
+
+            if let newInstance = newInstanceFromData {
+                XCTAssertEqual(originalAsset.filename,newInstance.filename)
+                XCTAssertEqual(originalAsset.data,newInstance.data)
+                XCTAssertEqual(originalAsset.originalLocation,newInstance.originalLocation)
+                XCTAssertEqual(originalAsset.contentType,newInstance.contentType)
+                XCTAssertEqual(originalAsset.contentLength,newInstance.contentLength)
+            }
+        }
     }
 }
diff --git a/sdks/swift/Tests/AUTH_Tests.swift b/sdks/swift/Tests/AUTH_Tests.swift
index 160cd19..80ec695 100644
--- a/sdks/swift/Tests/AUTH_Tests.swift
+++ b/sdks/swift/Tests/AUTH_Tests.swift
@@ -29,27 +29,41 @@
 
 class AUTH_Tests: XCTestCase {
 
-    let testAuthClient = UsergridClient(orgId: ClientCreationTests.orgId, appId: "sdk.demo")
-    let clientAuth = UsergridAppAuth(clientId: "b3U6THNcevskEeOQZLcUROUUVA", clientSecret: "b3U6RZHYznP28xieBzQPackFPmmnevU")
+    var appAuth: UsergridAppAuth!
+    var userAuth: UsergridUserAuth!
+
     private static let collectionName = "publicevent"
     private static let entityUUID = "fa015eaa-fe1c-11e3-b94b-63b29addea01"
 
+    override func setUp() {
+        super.setUp()
+        appAuth = UsergridAppAuth(clientId: "b3U6THNcevskEeOQZLcUROUUVA", clientSecret: "b3U6RZHYznP28xieBzQPackFPmmnevU")
+        userAuth = UsergridUserAuth(username: "username", password: "password")
+        Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: "sdk.demo")
+    }
+
+    override func tearDown() {
+        Usergrid._sharedClient = nil
+        super.tearDown()
+    }
+
     func test_CLIENT_AUTH() {
 
-        let authExpect = self.expectationWithDescription("\(__FUNCTION__)")
-        testAuthClient.authFallback = .App
-        testAuthClient.authenticateApp(clientAuth) { [weak self] (auth,error) in
-
+        let authExpect = self.expectationWithDescription("\(#function)")
+        Usergrid.authMode = .App
+        Usergrid.authenticateApp(appAuth) { auth,error in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNil(error)
-            XCTAssertNotNil(self?.testAuthClient.appAuth)
+            XCTAssertNotNil(Usergrid.appAuth)
 
-            if let appAuth = self?.testAuthClient.appAuth {
+            if let appAuth = Usergrid.appAuth {
 
                 XCTAssertNotNil(appAuth.accessToken)
                 XCTAssertNotNil(appAuth.expiry)
+                XCTAssertNotNil(appAuth.isValid)
 
-                self?.testAuthClient.GET(AUTH_Tests.collectionName) { (response) in
-
+                Usergrid.GET(AUTH_Tests.collectionName) { (response) in
+                    XCTAssertTrue(NSThread.isMainThread())
                     XCTAssertNotNil(response)
                     XCTAssertTrue(response.hasNextPage)
                     XCTAssertEqual(response.entities!.count, 10)
@@ -57,10 +71,62 @@
                     
                     authExpect.fulfill()
                 }
-            } else {
-                authExpect.fulfill()
             }
         }
-        self.waitForExpectationsWithTimeout(20, handler: nil)
+        self.waitForExpectationsWithTimeout(100, handler: nil)
     }
+
+    func test_DESTROY_AUTH() {
+        let auth = UsergridAuth(accessToken: "YWMt91Q2YtWaEeW_Ki2uDueMEwAAAVMUTVSPeOdX-oradxdqirEFz5cPU3GWybs")
+
+        XCTAssertTrue(auth.isValid)
+        XCTAssertNotNil(auth.accessToken)
+        XCTAssertNil(auth.expiry)
+
+        auth.destroy()
+
+        XCTAssertFalse(auth.isValid)
+        XCTAssertNil(auth.accessToken)
+        XCTAssertNil(auth.expiry)
+    }
+
+    func test_APP_AUTH_NSCODING() {
+
+        appAuth.accessToken = "YWMt91Q2YtWaEeW_Ki2uDueMEwAAAVMUTVSPeOdX-oradxdqirEFz5cPU3GWybs"
+        appAuth.expiry = NSDate.distantFuture()
+
+        let authCodingData = NSKeyedArchiver.archivedDataWithRootObject(appAuth)
+        let newInstanceFromData = NSKeyedUnarchiver.unarchiveObjectWithData(authCodingData) as? UsergridAppAuth
+
+        XCTAssertNotNil(newInstanceFromData)
+
+        if let newInstance = newInstanceFromData {
+            XCTAssertTrue(appAuth.isValid)
+            XCTAssertTrue(newInstance.isValid)
+            XCTAssertEqual(appAuth.clientId,newInstance.clientId)
+            XCTAssertEqual(appAuth.accessToken,newInstance.accessToken)
+            XCTAssertEqual(appAuth.expiry,newInstance.expiry)
+        }
+    }
+
+    func test_USER_AUTH_NSCODING() {
+
+        userAuth.accessToken = "YWMt91Q2YtWaEeW_Ki2uDueMEwAAAVMUTVSPeOdX-oradxdqirEFz5cPU3GWybs"
+        userAuth.expiry = NSDate.distantFuture()
+
+        let authCodingData = NSKeyedArchiver.archivedDataWithRootObject(userAuth)
+        let newInstanceFromData = NSKeyedUnarchiver.unarchiveObjectWithData(authCodingData) as? UsergridUserAuth
+
+        XCTAssertNotNil(newInstanceFromData)
+
+        if let newInstance = newInstanceFromData {
+            XCTAssertTrue(userAuth.isValid)
+            XCTAssertTrue(newInstance.isValid)
+            XCTAssertEqual(userAuth.username,newInstance.username)
+            XCTAssertEqual(userAuth.accessToken,newInstance.accessToken)
+            XCTAssertEqual(userAuth.expiry,newInstance.expiry)
+        }
+    }
+
+
 }
diff --git a/sdks/swift/Tests/CONNECTION_Tests.swift b/sdks/swift/Tests/CONNECTION_Tests.swift
index 4dff28f..2640778 100644
--- a/sdks/swift/Tests/CONNECTION_Tests.swift
+++ b/sdks/swift/Tests/CONNECTION_Tests.swift
@@ -29,25 +29,35 @@
 
 class CONNECTION_Tests: XCTestCase {
 
-    let testAuthClient = UsergridClient(orgId:ClientCreationTests.orgId, appId: "sdk.demo")
     let clientAuth = UsergridAppAuth(clientId: "b3U6THNcevskEeOQZLcUROUUVA", clientSecret: "b3U6RZHYznP28xieBzQPackFPmmnevU")
     private static let collectionName = "publicevent"
 
+    override func setUp() {
+        super.setUp()
+        Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: "sdk.demo")
+    }
+
+    override func tearDown() {
+        Usergrid._sharedClient = nil
+        super.tearDown()
+    }
+
     func test_CLIENT_AUTH() {
 
-        let authExpect = self.expectationWithDescription("\(__FUNCTION__)")
-        testAuthClient.authFallback = .App
-        testAuthClient.authenticateApp(clientAuth) { [weak self] (auth,error) in
+        let authExpect = self.expectationWithDescription("\(#function)")
+        Usergrid.authMode = .App
+        Usergrid.authenticateApp(clientAuth) { auth,error in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNil(error)
-            XCTAssertNotNil(self?.testAuthClient.appAuth)
+            XCTAssertNotNil(Usergrid.appAuth)
 
-            if let appAuth = self?.testAuthClient.appAuth {
+            if let appAuth = Usergrid.appAuth {
 
                 XCTAssertNotNil(appAuth.accessToken)
                 XCTAssertNotNil(appAuth.expiry)
 
-                self?.testAuthClient.GET(CONNECTION_Tests.collectionName) { (response) in
-
+                Usergrid.GET(CONNECTION_Tests.collectionName) { (response) in
+                    XCTAssertTrue(NSThread.isMainThread())
                     XCTAssertNotNil(response)
                     XCTAssertTrue(response.ok)
                     XCTAssertTrue(response.hasNextPage)
@@ -57,19 +67,27 @@
                     let entityToConnect = response.entities![1]
                     XCTAssertEqual(entity.type, CONNECTION_Tests.collectionName)
 
-                    entity.connect(self!.testAuthClient,relationship:"likes", toEntity: entityToConnect) { (response) -> Void in
+                    entity.connect("likes", toEntity: entityToConnect) { (response) -> Void in
+                        XCTAssertTrue(NSThread.isMainThread())
                         XCTAssertNotNil(response)
                         XCTAssertTrue(response.ok)
-                        entity.getConnections(self!.testAuthClient, direction:.Out, relationship: "likes", query:nil) { (response) -> Void in
+
+                        entity.getConnections(.Out, relationship: "likes", query:nil) { (response) -> Void in
+                            XCTAssertTrue(NSThread.isMainThread())
                             XCTAssertNotNil(response)
                             XCTAssertTrue(response.ok)
+
                             let connectedEntity = response.first!
                             XCTAssertNotNil(connectedEntity)
                             XCTAssertEqual(connectedEntity.uuidOrName, entityToConnect.uuidOrName)
-                            entity.disconnect(self!.testAuthClient, relationship: "likes", fromEntity: connectedEntity) { (response) -> Void in
+
+                            entity.disconnect("likes", fromEntity: connectedEntity) { (response) -> Void in
+                                XCTAssertTrue(NSThread.isMainThread())
                                 XCTAssertNotNil(response)
                                 XCTAssertTrue(response.ok)
-                                entity.getConnections(self!.testAuthClient, direction:.Out, relationship: "likes", query:nil) { (response) -> Void in
+
+                                entity.getConnections(.Out, relationship: "likes", query:nil) { (response) -> Void in
+                                    XCTAssertTrue(NSThread.isMainThread())
                                     XCTAssertNotNil(response)
                                     XCTAssertTrue(response.ok)
                                     authExpect.fulfill()
diff --git a/sdks/swift/Tests/ClientCreationTests.swift b/sdks/swift/Tests/ClientCreationTests.swift
index 0d1ab88..40a7de1 100644
--- a/sdks/swift/Tests/ClientCreationTests.swift
+++ b/sdks/swift/Tests/ClientCreationTests.swift
@@ -32,23 +32,10 @@
     static let orgId = "rwalsh"
     static let appId = "sandbox"
 
-    static let otherInstanceID = "otherInstanceID"
-    static let otherAppID = "otherAppID"
-    static let otherOrgID = "otherOrgID"
-    static let otherBaseURL = "http://www.something.com"
-    static let otherAppAuth = UsergridAppAuth(clientId: "alkdjflsdf", clientSecret: "alkdjflsdf")
-
-    static let otherConfiguration = UsergridClientConfig(orgId: ClientCreationTests.otherOrgID,
-                                                         appId: ClientCreationTests.otherAppID,
-                                                         baseUrl: ClientCreationTests.otherBaseURL,
-                                                         authFallback: .App,
-                                                         appAuth: ClientCreationTests.otherAppAuth)
-
-    let otherClient = UsergridClient(configuration: ClientCreationTests.otherConfiguration)
-
     override func setUp() {
         super.setUp()
         Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
+        Usergrid.persistCurrentUserInKeychain = false
     }
 
     override func tearDown() {
@@ -58,22 +45,17 @@
 
     func test_INSTANCE_POINTERS() {
         XCTAssertNotNil(Usergrid.sharedInstance)
-        XCTAssertNotNil(otherClient)
-        XCTAssertFalse(otherClient === Usergrid.sharedInstance)
     }
 
     func test_CLIENT_PROPERTIES() {
-        XCTAssertEqual(Usergrid.sharedInstance.appId, ClientCreationTests.appId)
-        XCTAssertEqual(Usergrid.sharedInstance.orgId, ClientCreationTests.orgId)
-        XCTAssertEqual(Usergrid.sharedInstance.authFallback, UsergridAuthFallback.None)
-        XCTAssertEqual(Usergrid.sharedInstance.baseUrl, UsergridClient.DEFAULT_BASE_URL)
-        XCTAssertNil(Usergrid.sharedInstance.currentUser)
-
-        XCTAssertEqual(otherClient.appId, ClientCreationTests.otherAppID)
-        XCTAssertEqual(otherClient.orgId, ClientCreationTests.otherOrgID)
-        XCTAssertEqual(otherClient.authFallback, UsergridAuthFallback.App)
-        XCTAssertEqual(otherClient.baseUrl, ClientCreationTests.otherBaseURL)
-        XCTAssertNil(otherClient.currentUser)
+        XCTAssertEqual(Usergrid.appId, ClientCreationTests.appId)
+        XCTAssertEqual(Usergrid.orgId, ClientCreationTests.orgId)
+        XCTAssertEqual(Usergrid.authMode, UsergridAuthMode.User)
+        XCTAssertEqual(Usergrid.persistCurrentUserInKeychain, false)
+        XCTAssertEqual(Usergrid.baseUrl, UsergridClient.DEFAULT_BASE_URL)
+        XCTAssertEqual(Usergrid.clientAppURL, "\(UsergridClient.DEFAULT_BASE_URL)/\(ClientCreationTests.orgId)/\(ClientCreationTests.appId)" )
+        XCTAssertNil(Usergrid.currentUser)
+        XCTAssertNil(Usergrid.userAuth)
     }
 
     func test_CLIENT_NSCODING() {
@@ -83,10 +65,10 @@
         XCTAssertNotNil(newInstanceFromData)
 
         if let newInstance = newInstanceFromData {
-            XCTAssertEqual(Usergrid.sharedInstance.appId, newInstance.appId)
-            XCTAssertEqual(Usergrid.sharedInstance.orgId, newInstance.orgId)
-            XCTAssertEqual(Usergrid.sharedInstance.authFallback, newInstance.authFallback)
-            XCTAssertEqual(Usergrid.sharedInstance.baseUrl, newInstance.baseUrl)
+            XCTAssertEqual(Usergrid.appId, newInstance.appId)
+            XCTAssertEqual(Usergrid.orgId, newInstance.orgId)
+            XCTAssertEqual(Usergrid.authMode, newInstance.authMode)
+            XCTAssertEqual(Usergrid.baseUrl, newInstance.baseUrl)
         }
     }
 }
diff --git a/sdks/swift/Tests/GET_Tests.swift b/sdks/swift/Tests/GET_Tests.swift
index 999b22a..2b0331f 100644
--- a/sdks/swift/Tests/GET_Tests.swift
+++ b/sdks/swift/Tests/GET_Tests.swift
@@ -29,18 +29,26 @@
 
 class GET_Tests: XCTestCase {
 
-    let usergridClientInstance = UsergridClient(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
-
     static let collectionName = "books"
     static let entityUUID = "f4078aca-2fb1-11e5-8eb2-e13f8369aad1"
 
-    let query = UsergridQuery(GET_Tests.collectionName).fromString("select * where title = 'The Sun Also Rises' or title = 'The Old Man and the Sea'")
+    let query = UsergridQuery(GET_Tests.collectionName).eq("title", value: "The Sun Also Rises").or().eq("title", value: "The Old Man and the Sea")
 
+    override func setUp() {
+        super.setUp()
+        Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
+    }
+
+    override func tearDown() {
+        Usergrid._sharedClient = nil
+        super.tearDown()
+    }
 
     func test_GET_WITHOUT_QUERY() {
 
-        let getExpect = self.expectationWithDescription("\(__FUNCTION__)")
-        usergridClientInstance.GET(GET_Tests.collectionName) { (response) in
+        let getExpect = self.expectationWithDescription("\(#function)")
+        Usergrid.GET(GET_Tests.collectionName) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(response)
             XCTAssertTrue(response.ok)
             XCTAssertTrue(response.hasNextPage)
@@ -52,11 +60,12 @@
 
     func test_GET_WITH_QUERY() {
 
-        let getExpect = self.expectationWithDescription("\(__FUNCTION__)")
-        usergridClientInstance.GET(self.query) { (response) in
+        let getExpect = self.expectationWithDescription("\(#function)")
+        Usergrid.GET(self.query) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(response)
             XCTAssertTrue(response.ok)
-            XCTAssertEqual(response.count, 3)
+            XCTAssertEqual(response.count, 1)
             getExpect.fulfill()
         }
         self.waitForExpectationsWithTimeout(10, handler: nil)
@@ -64,8 +73,9 @@
 
     func test_GET_WITH_UUID() {
 
-        let getExpect = self.expectationWithDescription("\(__FUNCTION__)")
-        usergridClientInstance.GET(GET_Tests.collectionName, uuidOrName:GET_Tests.entityUUID) { (response) in
+        let getExpect = self.expectationWithDescription("\(#function)")
+        Usergrid.GET(GET_Tests.collectionName, uuidOrName:GET_Tests.entityUUID) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(response)
             XCTAssertTrue(response.ok)
             let entity = response.first!
@@ -80,18 +90,20 @@
 
     func test_GET_NEXT_PAGE_WITH_NO_QUERY() {
 
-        let getExpect = self.expectationWithDescription("\(__FUNCTION__)")
-        usergridClientInstance.GET(GET_Tests.collectionName) { (response) in
+        let getExpect = self.expectationWithDescription("\(#function)")
+        Usergrid.GET(GET_Tests.collectionName) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(response)
             XCTAssertTrue(response.ok)
             XCTAssertTrue(response.hasNextPage)
             XCTAssertEqual(response.count, 10)
 
             response.loadNextPage() { (nextPageResponse) in
+                XCTAssertTrue(NSThread.isMainThread())
                 XCTAssertTrue(nextPageResponse.ok)
                 XCTAssertNotNil(nextPageResponse)
                 XCTAssertFalse(nextPageResponse.hasNextPage)
-                XCTAssertEqual(nextPageResponse.entities!.count, 6)
+                XCTAssertEqual(nextPageResponse.entities!.count, 7)
                 getExpect.fulfill()
             }
         }
diff --git a/sdks/swift/Tests/PUT_Tests.swift b/sdks/swift/Tests/PUT_Tests.swift
index 26f3260..b1ff3e7 100644
--- a/sdks/swift/Tests/PUT_Tests.swift
+++ b/sdks/swift/Tests/PUT_Tests.swift
@@ -29,8 +29,6 @@
 
 class PUT_Tests: XCTestCase {
 
-    let client = UsergridClient(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
-
     let query = UsergridQuery(PUT_Tests.collectionName)
         .eq("title", value: "The Sun Also Rises")
         .or()
@@ -39,14 +37,24 @@
     static let collectionName = "books"
     static let entityUUID = "f4078aca-2fb1-11e5-8eb2-e13f8369aad1"
 
+    override func setUp() {
+        super.setUp()
+        Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
+    }
+
+    override func tearDown() {
+        Usergrid._sharedClient = nil
+        super.tearDown()
+    }
+
     func test_PUT_BY_SPECIFYING_UUID_AS_PARAMETER() {
 
-        let propertyNameToUpdate = "\(__FUNCTION__)"
+        let propertyNameToUpdate = "\(#function)"
         let propertiesNewValue = "\(propertyNameToUpdate)_VALUE"
         let putExpect = self.expectationWithDescription(propertyNameToUpdate)
 
-        client.PUT(PUT_Tests.collectionName, uuidOrName: PUT_Tests.entityUUID, jsonBody:[propertyNameToUpdate : propertiesNewValue]) { (response) in
-
+        Usergrid.PUT(PUT_Tests.collectionName, uuidOrName: PUT_Tests.entityUUID, jsonBody:[propertyNameToUpdate : propertiesNewValue]) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(response)
             XCTAssertTrue(response.ok)
             XCTAssertEqual(response.entities!.count, 1)
@@ -65,13 +73,14 @@
 
     func test_PUT_BY_SPECIFYING_UUID_WITHIN_JSON_BODY() {
 
-        let propertyNameToUpdate = "\(__FUNCTION__)"
+        let propertyNameToUpdate = "\(#function)"
         let propertiesNewValue = "\(propertyNameToUpdate)_VALUE"
         let putExpect = self.expectationWithDescription(propertyNameToUpdate)
 
         let jsonDictToPut = [UsergridEntityProperties.UUID.stringValue : PUT_Tests.entityUUID, propertyNameToUpdate : propertiesNewValue]
 
-        client.PUT(PUT_Tests.collectionName, jsonBody: jsonDictToPut) { (response) in
+        Usergrid.PUT(PUT_Tests.collectionName, jsonBody: jsonDictToPut) { (response) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(response)
             XCTAssertTrue(response.ok)
             XCTAssertEqual(response.entities!.count, 1)
@@ -89,11 +98,12 @@
     }
 
     func test_PUT_WITH_ENTITY_OBJECT() {
-        let propertyNameToUpdate = "\(__FUNCTION__)"
+        let propertyNameToUpdate = "\(#function)"
         let propertiesNewValue = "\(propertyNameToUpdate)_VALUE"
         let putExpect = self.expectationWithDescription(propertyNameToUpdate)
 
-        client.GET(PUT_Tests.collectionName, uuidOrName: PUT_Tests.entityUUID) { (getResponse) in
+        Usergrid.GET(PUT_Tests.collectionName, uuidOrName: PUT_Tests.entityUUID) { (getResponse) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(getResponse)
             XCTAssertTrue(getResponse.ok)
             XCTAssertEqual(getResponse.entities!.count, 1)
@@ -105,7 +115,8 @@
 
             responseEntity[propertyNameToUpdate] = propertiesNewValue
 
-            self.client.PUT(responseEntity) { (putResponse) in
+            Usergrid.PUT(responseEntity) { (putResponse) in
+                XCTAssertTrue(NSThread.isMainThread())
                 XCTAssertNotNil(putResponse)
                 XCTAssertTrue(putResponse.ok)
                 XCTAssertEqual(putResponse.entities!.count, 1)
@@ -124,14 +135,15 @@
     }
 
     func test_PUT_WITH_QUERY() {
-        let propertyNameToUpdate = "\(__FUNCTION__)"
+        let propertyNameToUpdate = "\(#function)"
         let propertiesNewValue = "\(propertyNameToUpdate)_VALUE"
         let putExpect = self.expectationWithDescription(propertyNameToUpdate)
 
-        client.PUT(self.query, jsonBody: [propertyNameToUpdate : propertiesNewValue]) { (putResponse) in
+        Usergrid.PUT(self.query, jsonBody: [propertyNameToUpdate : propertiesNewValue]) { (putResponse) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(putResponse)
             XCTAssertTrue(putResponse.ok)
-            XCTAssertEqual(putResponse.entities!.count, 3)
+            XCTAssertEqual(putResponse.entities!.count, 1)
 
             let responseEntity = putResponse.first!
             XCTAssertNotNil(responseEntity)
diff --git a/sdks/swift/Tests/TestAssets/UsergridGuy.jpg b/sdks/swift/Tests/TestAssets/UsergridGuy.jpg
new file mode 100644
index 0000000..035dd7b
--- /dev/null
+++ b/sdks/swift/Tests/TestAssets/UsergridGuy.jpg
Binary files differ
diff --git a/sdks/swift/Tests/User_Tests.swift b/sdks/swift/Tests/User_Tests.swift
index 2b1a504..dcb5545 100644
--- a/sdks/swift/Tests/User_Tests.swift
+++ b/sdks/swift/Tests/User_Tests.swift
@@ -25,32 +25,98 @@
  */
 
 import XCTest
+import CoreLocation
 @testable import UsergridSDK
 
 class User_Tests: XCTestCase {
 
-    var client = UsergridClient(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
-
-    let userWithNoName = UsergridUser()
-    let user = UsergridUser(name:User_Tests.name, email:User_Tests.email, username:User_Tests.username, password:User_Tests.password)
+    var user: UsergridUser!
 
     static let name = "Robert Walsh"
     static let age = 29
     static let email = "handsomeRob741@yahoo.com"
     static let username = "rwalsh"
     static let password = "password"
+    static let resetPassword = "password111"
     static let picture = "http://www.gravatar.com/avatar/e466d447df831ddce35fbc50763fb03a"
     static let activated = true
     static let disabled = false
 
     override func setUp() {
         super.setUp()
+
+        Usergrid.initSharedInstance(orgId:ClientCreationTests.orgId, appId: ClientCreationTests.appId)
+        Usergrid.persistCurrentUserInKeychain = false
+
+        user = UsergridUser(name:"a_bogus_name", email:User_Tests.email, username:User_Tests.username, password:User_Tests.password)
+        user.name = User_Tests.name
         user.age = User_Tests.age
+        user.location = CLLocation(latitude: -90, longitude: 100)
         user.picture = User_Tests.picture
         user.activated = User_Tests.activated
         user.disabled = User_Tests.disabled
     }
 
+    override func tearDown() {
+        Usergrid._sharedClient = nil        
+        super.tearDown()
+    }
+
+    func test_USER_INIT() {
+        user = UsergridUser(email: User_Tests.email, password: User_Tests.password)
+        XCTAssertNotNil(user)
+        XCTAssertNotNil(user.email)
+        XCTAssertNotNil(user.password)
+        XCTAssertEqual(user.email!, User_Tests.email)
+        XCTAssertEqual(user.usernameOrEmail!, User_Tests.email)
+        XCTAssertEqual(user.password!, User_Tests.password)
+        XCTAssertFalse(user.activated)
+        XCTAssertFalse(user.disabled)
+
+        user = UsergridUser(name: User_Tests.name, propertyDict: ["password":User_Tests.password])
+        XCTAssertNotNil(user)
+        XCTAssertNotNil(user.name)
+        XCTAssertNotNil(user.password)
+        XCTAssertEqual(user.name!, User_Tests.name)
+        XCTAssertEqual(user.password!, User_Tests.password)
+        XCTAssertFalse(user.activated)
+        XCTAssertFalse(user.disabled)
+
+        user = UsergridUser(name:User_Tests.name, email: User_Tests.email, password: User_Tests.password)
+        XCTAssertNotNil(user)
+        XCTAssertNotNil(user.name)
+        XCTAssertNotNil(user.email)
+        XCTAssertNotNil(user.password)
+        XCTAssertEqual(user.name!, User_Tests.name)
+        XCTAssertEqual(user.email!, User_Tests.email)
+        XCTAssertEqual(user.usernameOrEmail!, User_Tests.email)
+        XCTAssertEqual(user.password!, User_Tests.password)
+        XCTAssertFalse(user.activated)
+        XCTAssertFalse(user.disabled)
+
+        user = UsergridUser(username: User_Tests.username, password: User_Tests.password)
+        XCTAssertNotNil(user)
+        XCTAssertNotNil(user.username)
+        XCTAssertNotNil(user.password)
+        XCTAssertEqual(user.username!, User_Tests.username)
+        XCTAssertEqual(user.usernameOrEmail!, User_Tests.username)
+        XCTAssertEqual(user.password!, User_Tests.password)
+        XCTAssertFalse(user.activated)
+        XCTAssertFalse(user.disabled)
+
+        user = UsergridUser(name: User_Tests.name, username: User_Tests.username, password: User_Tests.password)
+        XCTAssertNotNil(user)
+        XCTAssertNotNil(user.name)
+        XCTAssertNotNil(user.username)
+        XCTAssertNotNil(user.password)
+        XCTAssertEqual(user.name!, User_Tests.name)
+        XCTAssertEqual(user.username!, User_Tests.username)
+        XCTAssertEqual(user.usernameOrEmail!, User_Tests.username)
+        XCTAssertEqual(user.password!, User_Tests.password)
+        XCTAssertFalse(user.activated)
+        XCTAssertFalse(user.disabled)
+    }
+
     func test_USERS_AND_PROPERTIES_NOT_NIL() {
         XCTAssertNotNil(user)
         XCTAssertNotNil(user.name)
@@ -61,12 +127,12 @@
         XCTAssertNotNil(user.picture)
         XCTAssertNotNil(user.activated)
         XCTAssertNotNil(user.disabled)
-
-        XCTAssertNotNil(userWithNoName)
-        XCTAssertNil(userWithNoName.name)
     }
 
     func test_USER_PROPERTIES_WITH_HELPERS() {
+        user["uuid"] = User_Tests.age
+        XCTAssertNil(user.uuid)
+
         XCTAssertEqual(user.name!, User_Tests.name)
         XCTAssertEqual(user.age!, User_Tests.age)
         XCTAssertEqual(user.username!, User_Tests.username)
@@ -88,17 +154,34 @@
         XCTAssertFalse(user[UsergridUserProperties.Disabled.stringValue]! as! Bool)
     }
 
-    func test_CREATE_AND_DELETE_USER() {
-        let createUserExpect = self.expectationWithDescription("\(__FUNCTION__)")
+    func deleteUser(expectation:XCTestExpectation) {
+        self.user.remove() { removeResponse in
+            XCTAssertTrue(NSThread.isMainThread())
+            XCTAssertNotNil(removeResponse)
+            XCTAssertTrue(removeResponse.ok)
+            XCTAssertNotNil(removeResponse.user)
+            XCTAssertNotNil(removeResponse.users)
+            print(removeResponse.error)
+            expectation.fulfill()
+        }
+    }
 
-        user.create(client) { (createResponse) in
+    func test_CREATE_AND_DELETE_USER() {
+        let userExpect = self.expectationWithDescription("\(#function)")
+
+        user.save() { (createResponse) in
+            XCTAssertTrue(NSThread.isMainThread())
             XCTAssertNotNil(createResponse)
             XCTAssertTrue(createResponse.ok)
             XCTAssertNotNil(createResponse.user)
             XCTAssertNotNil(createResponse.users)
 
             if let createdUser = createResponse.user {
+                XCTAssertTrue(createdUser.isUser)
                 XCTAssertNotNil(createdUser.uuid)
+                XCTAssertNotNil(createdUser.created)
+                XCTAssertNotNil(createdUser.modified)
+                XCTAssertNotNil(createdUser.location)
                 XCTAssertEqual(createdUser.name!, User_Tests.name)
                 XCTAssertEqual(createdUser.age!, User_Tests.age)
                 XCTAssertEqual(createdUser.username!, User_Tests.username)
@@ -106,16 +189,211 @@
                 XCTAssertEqual(createdUser.picture!, User_Tests.picture)
                 XCTAssertTrue(createdUser.activated)
                 XCTAssertFalse(createdUser.disabled)
+                XCTAssertFalse(createdUser.hasAsset)
 
-                createdUser.remove(self.client) { (removeResponse) in
-                    XCTAssertNotNil(removeResponse)
-                    XCTAssertTrue(removeResponse.ok)
-                    XCTAssertNotNil(removeResponse.user)
-                    XCTAssertNotNil(removeResponse.users)
-                    createUserExpect.fulfill()
+                self.deleteUser(userExpect)
+            }
+        }
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+    func test_AUTHENTICATE_USER() {
+        let userExpect = self.expectationWithDescription("\(#function)")
+
+        UsergridUser.checkAvailable(user.email, username: user.username) { error,available in
+
+            XCTAssertTrue(NSThread.isMainThread())
+            XCTAssertNil(error)
+            XCTAssertTrue(available)
+
+            self.user.create() { (createResponse) in
+                XCTAssertTrue(NSThread.isMainThread())
+                XCTAssertNotNil(createResponse)
+                XCTAssertTrue(createResponse.ok)
+                XCTAssertNotNil(createResponse.user)
+                XCTAssertNotNil(createResponse.users)
+                XCTAssertNotNil(self.user.uuid)
+
+                self.user.login(self.user.username!, password:User_Tests.password) { (auth, loggedInUser, error) -> Void in
+                    XCTAssertTrue(NSThread.isMainThread())
+                    XCTAssertNil(error)
+                    XCTAssertNotNil(auth)
+                    XCTAssertNotNil(loggedInUser)
+                    XCTAssertEqual(auth, self.user.auth!)
+
+                    Usergrid.authenticateUser(self.user.auth!) { auth,currentUser,error in
+                        XCTAssertTrue(NSThread.isMainThread())
+                        XCTAssertNil(error)
+                        XCTAssertNotNil(auth)
+                        XCTAssertEqual(auth, self.user.auth!)
+
+                        XCTAssertNotNil(currentUser)
+                        XCTAssertNotNil(Usergrid.currentUser)
+                        XCTAssertEqual(currentUser, Usergrid.currentUser!)
+
+                        self.user.reauthenticate() { auth, reauthedUser, error in
+                            XCTAssertTrue(NSThread.isMainThread())
+                            XCTAssertNil(error)
+                            XCTAssertNotNil(auth)
+                            XCTAssertEqual(auth, self.user.auth!)
+
+                            XCTAssertNotNil(reauthedUser)
+                            XCTAssertNotNil(Usergrid.currentUser)
+
+                            self.user.logout() { response in
+                                XCTAssertTrue(NSThread.isMainThread())
+                                XCTAssertNotNil(response)
+                                XCTAssertTrue(response.ok)
+                                XCTAssertNil(response.error)
+
+                                self.deleteUser(userExpect)
+                            }
+                        }
+                    }
                 }
             }
         }
-        self.waitForExpectationsWithTimeout(10, handler: nil)
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+    func test_RESET_USER_PASSWORD() {
+        let userExpect = self.expectationWithDescription("\(#function)")
+
+        user.create() { (createResponse) in
+            XCTAssertTrue(NSThread.isMainThread())
+            XCTAssertNotNil(createResponse)
+            XCTAssertTrue(createResponse.ok)
+            XCTAssertNotNil(createResponse.user)
+            XCTAssertNotNil(createResponse.users)
+            XCTAssertNotNil(self.user.uuid)
+
+            self.user.login(self.user.username!, password:User_Tests.password) { (auth, loggedInUser, error) -> Void in
+                XCTAssertTrue(NSThread.isMainThread())
+                XCTAssertNil(error)
+                XCTAssertNotNil(auth)
+                XCTAssertNotNil(loggedInUser)
+                XCTAssertEqual(auth, self.user.auth!)
+
+                self.user.resetPassword(User_Tests.password, new: User_Tests.resetPassword) { error,didSucceed in
+                    XCTAssertTrue(NSThread.isMainThread())
+                    XCTAssertTrue(didSucceed)
+                    XCTAssertNil(error)
+
+                    self.user.login(self.user.username!, password:User_Tests.resetPassword) { (auth, loggedInUser, error) -> Void in
+                        XCTAssertTrue(NSThread.isMainThread())
+                        XCTAssertNil(error)
+                        XCTAssertNotNil(auth)
+                        XCTAssertNotNil(loggedInUser)
+                        XCTAssertEqual(auth, self.user.auth!)
+
+                        self.deleteUser(userExpect)
+                    }
+                }
+            }
+        }
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+    func test_DEVICE_CONNECTION() {
+        let userExpect = self.expectationWithDescription("\(#function)")
+
+        user.create() { createResponse in
+            XCTAssertNotNil(createResponse)
+            XCTAssertTrue(createResponse.ok)
+            XCTAssertNotNil(createResponse.user)
+            XCTAssertNotNil(createResponse.users)
+            XCTAssertNotNil(self.user.uuid)
+
+            self.user.connectToDevice() { connectResponse in
+                XCTAssertNotNil(connectResponse)
+                XCTAssertTrue(connectResponse.ok)
+                XCTAssertNil(connectResponse.error)
+
+                self.user.getConnectedDevice() { getConnectedDeviceResponse in
+                    XCTAssertNotNil(getConnectedDeviceResponse)
+                    XCTAssertTrue(getConnectedDeviceResponse.ok)
+                    XCTAssertNil(getConnectedDeviceResponse.error)
+                    XCTAssertNotNil(getConnectedDeviceResponse.entity)
+
+                    if let responseEntity = getConnectedDeviceResponse.entity {
+                        XCTAssertTrue(responseEntity is UsergridDevice)
+                    }
+
+                    self.user.disconnectFromDevice() { disconnectResponse in
+                        XCTAssertNotNil(disconnectResponse)
+                        XCTAssertTrue(disconnectResponse.ok)
+                        XCTAssertNil(disconnectResponse.error)
+
+                        self.deleteUser(userExpect)
+                    }
+                }
+            }
+        }
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+    func test_DEVICE_CONNECT_FAIL() {
+        let userExpect = self.expectationWithDescription("\(#function)")
+
+        user.create() { createResponse in
+            XCTAssertNotNil(createResponse)
+            XCTAssertTrue(createResponse.ok)
+            XCTAssertNotNil(createResponse.user)
+            XCTAssertNotNil(createResponse.users)
+            XCTAssertNotNil(self.user.uuid)
+
+            self.user.connectToDevice() { connectResponse in
+                XCTAssertNotNil(connectResponse)
+                XCTAssertTrue(connectResponse.ok)
+                XCTAssertNil(connectResponse.error)
+
+                self.user.getConnectedDevice() { getConnectedDeviceResponse in
+                    XCTAssertNotNil(getConnectedDeviceResponse)
+                    XCTAssertTrue(getConnectedDeviceResponse.ok)
+                    XCTAssertNil(getConnectedDeviceResponse.error)
+                    XCTAssertNotNil(getConnectedDeviceResponse.entity)
+
+                    if let responseEntity = getConnectedDeviceResponse.entity {
+                        XCTAssertTrue(responseEntity is UsergridDevice)
+                    }
+
+                    self.user.disconnectFromDevice() { disconnectResponse in
+                        XCTAssertNotNil(disconnectResponse)
+                        XCTAssertTrue(disconnectResponse.ok)
+                        XCTAssertNil(disconnectResponse.error)
+
+                        self.deleteUser(userExpect)
+                    }
+                }
+            }
+        }
+        self.waitForExpectationsWithTimeout(100, handler: nil)
+    }
+
+
+    func test_USER_NSCODING() {
+        let userData = NSKeyedArchiver.archivedDataWithRootObject(user)
+        let newInstanceFromData = NSKeyedUnarchiver.unarchiveObjectWithData(userData) as? UsergridUser
+
+        XCTAssertNotNil(newInstanceFromData)
+
+        if let newInstance = newInstanceFromData {
+            XCTAssertEqual(user.uuid,newInstance.uuid)
+            XCTAssertEqual(user.uuidOrName,newInstance.uuidOrName)
+            XCTAssertEqual(user.uuidOrUsername,newInstance.uuidOrUsername)
+            XCTAssertEqual(user.auth,newInstance.auth)
+            XCTAssertEqual(user.created,newInstance.created)
+            XCTAssertEqual(user.modified,newInstance.modified)
+            XCTAssertEqual(user.location!.coordinate.longitude,newInstance.location!.coordinate.longitude)
+            XCTAssertEqual(user.location!.coordinate.latitude,newInstance.location!.coordinate.latitude)
+            XCTAssertEqual(user.name,newInstance.name)
+            XCTAssertEqual(user.age,newInstance.age)
+            XCTAssertEqual(user.username,newInstance.username)
+            XCTAssertEqual(user.email,newInstance.email)
+            XCTAssertEqual(user.picture,newInstance.picture)
+            XCTAssertEqual(user.activated,newInstance.activated)
+            XCTAssertEqual(user.disabled,newInstance.disabled)
+            XCTAssertEqual(user.hasAsset,newInstance.hasAsset)
+        }
     }
 }
\ No newline at end of file
diff --git a/sdks/swift/UsergridSDK.xcodeproj/project.pbxproj b/sdks/swift/UsergridSDK.xcodeproj/project.pbxproj
index 54bd61b..338835c 100644
--- a/sdks/swift/UsergridSDK.xcodeproj/project.pbxproj
+++ b/sdks/swift/UsergridSDK.xcodeproj/project.pbxproj
@@ -870,7 +870,7 @@
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				TARGETED_DEVICE_FAMILY = 3;
-				TVOS_DEPLOYMENT_TARGET = 9.1;
+				TVOS_DEPLOYMENT_TARGET = 9.2;
 			};
 			name = Debug;
 		};
@@ -883,7 +883,7 @@
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				TARGETED_DEVICE_FAMILY = 3;
-				TVOS_DEPLOYMENT_TARGET = 9.1;
+				TVOS_DEPLOYMENT_TARGET = 9.2;
 			};
 			name = Release;
 		};
diff --git a/sdks/swift/docs/Classes.html b/sdks/swift/docs/Classes.html
index c867dcf..c6b6e22 100644
--- a/sdks/swift/docs/Classes.html
+++ b/sdks/swift/docs/Classes.html
@@ -13,12 +13,12 @@
     <a title="Classes  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="index.html">UsergridSDK Reference</a>
+        <a href="index.html"> Reference</a>
         <img id="carat" src="img/carat.png" />
         Classes  Reference
       </p>
@@ -91,7 +91,7 @@
             <a href="Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -120,6 +120,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -684,7 +692,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/Usergrid.html b/sdks/swift/docs/Classes/Usergrid.html
index d959029..61bf26f 100644
--- a/sdks/swift/docs/Classes/Usergrid.html
+++ b/sdks/swift/docs/Classes/Usergrid.html
@@ -14,12 +14,12 @@
     <a title="Usergrid Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         Usergrid Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -459,9 +467,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZvC11UsergridSDK8Usergrid12authFallbackOS_20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Variable/authFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid12authFallbackOS_20UsergridAuthFallback">authFallback</a>
+                    <a name="/s:ZvC11UsergridSDK8Usergrid8authModeOS_16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Variable/authMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid8authModeOS_16UsergridAuthMode">authMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -469,14 +477,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code><a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a></code> value used to determine what type of token will be sent of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>, if any.</p>
+                        <p>The <code><a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a></code> value used to determine what type of token will be sent of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>, if any.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">authFallback</span><span class="p">:</span> <span class="kt">UsergridAuthFallback</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">authMode</span><span class="p">:</span> <span class="kt">UsergridAuthMode</span></code></pre>
 
                         </div>
                       </div>
@@ -497,9 +505,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIdSS5appIdSS_CS_14UsergridClient"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS_CS_14UsergridClient"></a>
                     <a name="//apple_ref/swift/Method/initSharedInstance(orgId:appId:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIdSS5appIdSS_CS_14UsergridClient">initSharedInstance(orgId:appId:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS_CS_14UsergridClient">initSharedInstance(orgId:appId:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -562,9 +570,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIdSS5appIdSS7baseUrlSS_CS_14UsergridClient"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS7baseUrlSS_CS_14UsergridClient"></a>
                     <a name="//apple_ref/swift/Method/initSharedInstance(orgId:appId:baseUrl:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIdSS5appIdSS7baseUrlSS_CS_14UsergridClient">initSharedInstance(orgId:appId:baseUrl:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS7baseUrlSS_CS_14UsergridClient">initSharedInstance(orgId:appId:baseUrl:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -640,9 +648,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT13configurationCS_20UsergridClientConfig_CS_14UsergridClient"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT13configurationCS_20UsergridClientConfig_CS_14UsergridClient"></a>
                     <a name="//apple_ref/swift/Method/initSharedInstance(configuration:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT13configurationCS_20UsergridClientConfig_CS_14UsergridClient">initSharedInstance(configuration:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT13configurationCS_20UsergridClientConfig_CS_14UsergridClient">initSharedInstance(configuration:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -703,9 +711,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -776,9 +784,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:pushToken:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -873,9 +881,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid9usingAuthFMS0_FCS_12UsergridAuthCS_14UsergridClient"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid9usingAuthFCS_12UsergridAuthCS_14UsergridClient"></a>
                     <a name="//apple_ref/swift/Method/usingAuth(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid9usingAuthFMS0_FCS_12UsergridAuthCS_14UsergridClient">usingAuth(_:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid9usingAuthFCS_12UsergridAuthCS_14UsergridClient">usingAuth(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -927,9 +935,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10usingTokenFMS0_FSSCS_14UsergridClient"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10usingTokenFSSCS_14UsergridClient"></a>
                     <a name="//apple_ref/swift/Method/usingToken(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10usingTokenFMS0_FSSCS_14UsergridClient">usingToken(_:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10usingTokenFSSCS_14UsergridClient">usingToken(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -981,9 +989,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid15authForRequestsFMS0_FT_GSqCS_12UsergridAuth_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid15authForRequestsFT_GSqCS_12UsergridAuth_"></a>
                     <a name="//apple_ref/swift/Method/authForRequests()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authForRequestsFMS0_FT_GSqCS_12UsergridAuth_">authForRequests()</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authForRequestsFT_GSqCS_12UsergridAuth_">authForRequests()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -995,7 +1003,7 @@
 
 <p>If there is a <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> logged in and the token of that user is valid then it will return that.</p>
 
-<p>Otherwise, if the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid12authFallbackOS_20UsergridAuthFallback">authFallback</a></code> is <code>.App</code>, and the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> of the client is set and the token is valid it will return that.</p>
+<p>Otherwise, if the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid8authModeOS_16UsergridAuthMode">authMode</a></code> is <code>.App</code>, and the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> of the client is set and the token is valid it will return that.</p>
 
                       </div>
                       <div class="declaration">
@@ -1017,9 +1025,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1064,9 +1072,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1124,9 +1132,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1184,9 +1192,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:setAsCurrentUser:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1257,9 +1265,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFMS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/logoutCurrentUser(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFMS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/resetPassword(_:old:new:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1267,7 +1275,93 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Logs out the current user of the shared instance locally and remotely.</p>
+                        <p>Changes the given <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>&rsquo;s current password with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">resetPassword</span><span class="p">(</span><span class="nv">user</span><span class="p">:</span> <span class="kt">UsergridUser</span><span class="p">,</span> <span class="nv">old</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">new</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserResetPasswordCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>user</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The user.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>old</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The old password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>new</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The new password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/logoutCurrentUser(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Logs out the current user of the shared instance locally and remotely using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
@@ -1304,9 +1398,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFMS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUserAllTokens(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFMS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1351,9 +1445,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10logoutUserFMS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUser(_:token:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10logoutUserFMS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1411,9 +1505,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid11sendRequestFMS0_FTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/sendRequest(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11sendRequestFMS0_FTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_">sendRequest(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_">sendRequest(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1488,9 +1582,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/GET(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1561,9 +1655,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/GET(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1621,9 +1715,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/GET(_:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:queryCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1692,9 +1786,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:uuidOrName:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1778,9 +1872,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1857,9 +1951,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1917,9 +2011,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2007,9 +2101,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:name:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2093,9 +2187,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2166,9 +2260,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBodies:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2239,9 +2333,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2299,9 +2393,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:entitiesCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2376,9 +2470,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2449,9 +2543,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2515,9 +2609,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2592,9 +2686,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:relationship:to:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2678,9 +2772,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2790,9 +2884,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2902,9 +2996,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:relationship:from:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2988,9 +3082,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3100,9 +3194,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3212,9 +3306,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:entity:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3229,7 +3323,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3298,9 +3392,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:type:uuidOrName:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:type:uuidOrName:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:type:uuidOrName:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3315,7 +3409,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3410,9 +3504,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:uuid:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:uuid:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:uuid:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3427,7 +3521,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">uuid</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">uuid</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3520,9 +3614,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid11uploadAssetFMS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11uploadAssetFMS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:asset:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3606,9 +3700,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid13downloadAssetFMS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:contentType:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid13downloadAssetFMS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3694,7 +3788,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridAppAuth.html b/sdks/swift/docs/Classes/UsergridAppAuth.html
index 3e5118a..70c940e 100644
--- a/sdks/swift/docs/Classes/UsergridAppAuth.html
+++ b/sdks/swift/docs/Classes/UsergridAppAuth.html
@@ -14,12 +14,12 @@
     <a title="UsergridAppAuth Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridAppAuth Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -215,9 +223,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT8clientIdSS12clientSecretSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFT8clientIdSS12clientSecretSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(clientId:clientSecret:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT8clientIdSS12clientSecretSS_S0_">init(clientId:clientSecret:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFT8clientIdSS12clientSecretSS_S0_">init(clientId:clientSecret:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -291,9 +299,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -334,7 +342,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+                        <p>A decoded <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> object.</p>
 
                       </div>
                     </section>
@@ -343,9 +351,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -392,7 +400,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridAsset.html b/sdks/swift/docs/Classes/UsergridAsset.html
index b473cd1..568d727 100644
--- a/sdks/swift/docs/Classes/UsergridAsset.html
+++ b/sdks/swift/docs/Classes/UsergridAsset.html
@@ -14,12 +14,12 @@
     <a title="UsergridAsset Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridAsset Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -325,9 +333,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8filenameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(filename:data:originalLocation:contentType:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8filenameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_">init(filename:data:originalLocation:contentType:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_">init(filename:data:originalLocation:contentType:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -416,9 +424,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__"></a>
-                    <a name="//apple_ref/swift/Method/init(fileName:image:imageContentType:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__">init(fileName:image:imageContentType:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(filename:image:imageContentType:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__">init(filename:image:imageContentType:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -433,7 +441,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">fileName</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">image</span><span class="p">:</span><span class="kt">UIImage</span><span class="p">,</span> <span class="nv">imageContentType</span><span class="p">:</span><span class="kt">UsergridImageContentType</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Png</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">filename</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">image</span><span class="p">:</span><span class="kt">UIImage</span><span class="p">,</span> <span class="nv">imageContentType</span><span class="p">:</span><span class="kt">UsergridImageContentType</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Png</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -494,9 +502,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__"></a>
-                    <a name="//apple_ref/swift/Method/init(fileName:fileURL:contentType:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__">init(fileName:fileURL:contentType:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(filename:fileURL:contentType:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__">init(filename:fileURL:contentType:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -511,7 +519,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">fileName</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">fileURL</span><span class="p">:</span><span class="kt">NSURL</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">filename</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">fileURL</span><span class="p">:</span><span class="kt">NSURL</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -583,9 +591,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -635,9 +643,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAsset15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridAsset15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAsset15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAsset15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -684,7 +692,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridAssetUploadRequest.html b/sdks/swift/docs/Classes/UsergridAssetUploadRequest.html
index 393f872..f7a0b00 100644
--- a/sdks/swift/docs/Classes/UsergridAssetUploadRequest.html
+++ b/sdks/swift/docs/Classes/UsergridAssetUploadRequest.html
@@ -14,12 +14,12 @@
     <a title="UsergridAssetUploadRequest Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridAssetUploadRequest Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -242,9 +250,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK26UsergridAssetUploadRequestcFMS0_FT7baseUrlSS5pathsGSqGSaSS__4authGSqCS_12UsergridAuth_5assetCS_13UsergridAsset_S0_"></a>
+                    <a name="/s:FC11UsergridSDK26UsergridAssetUploadRequestcFT7baseUrlSS5pathsGSqGSaSS__4authGSqCS_12UsergridAuth_5assetCS_13UsergridAsset_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(baseUrl:paths:auth:asset:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK26UsergridAssetUploadRequestcFMS0_FT7baseUrlSS5pathsGSqGSaSS__4authGSqCS_12UsergridAuth_5assetCS_13UsergridAsset_S0_">init(baseUrl:paths:auth:asset:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK26UsergridAssetUploadRequestcFT7baseUrlSS5pathsGSqGSaSS__4authGSqCS_12UsergridAuth_5assetCS_13UsergridAsset_S0_">init(baseUrl:paths:auth:asset:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -338,7 +346,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridAuth.html b/sdks/swift/docs/Classes/UsergridAuth.html
index 9db7a66..8d1f6fd 100644
--- a/sdks/swift/docs/Classes/UsergridAuth.html
+++ b/sdks/swift/docs/Classes/UsergridAuth.html
@@ -14,12 +14,12 @@
     <a title="UsergridAuth Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridAuth Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -325,9 +333,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuthcFMS0_FT11accessTokenSS6expiryGSqCSo6NSDate__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuthcFT11accessTokenSS6expiryGSqCSo6NSDate__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(accessToken:expiry:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFMS0_FT11accessTokenSS6expiryGSqCSo6NSDate__S0_">init(accessToken:expiry:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFT11accessTokenSS6expiryGSqCSo6NSDate__S0_">init(accessToken:expiry:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -401,9 +409,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuthcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -444,7 +452,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+                        <p>A decoded <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> object.</p>
 
                       </div>
                     </section>
@@ -453,9 +461,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -511,9 +519,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuth7destroyFS0_FT_T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuth7destroyFT_T_"></a>
                     <a name="//apple_ref/swift/Method/destroy()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth7destroyFS0_FT_T_">destroy()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth7destroyFT_T_">destroy()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -540,7 +548,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridClient.html b/sdks/swift/docs/Classes/UsergridClient.html
index 0b1b378..09c2175 100644
--- a/sdks/swift/docs/Classes/UsergridClient.html
+++ b/sdks/swift/docs/Classes/UsergridClient.html
@@ -14,12 +14,12 @@
     <a title="UsergridClient Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridClient Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -285,6 +293,33 @@
                 <li class="item">
                   <div>
                     <code>
+                    <a name="/s:vC11UsergridSDK14UsergridClient12clientAppURLSS"></a>
+                    <a name="//apple_ref/swift/Property/clientAppURL" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient12clientAppURLSS">clientAppURL</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The constructed URL string based on the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>&rsquo;s <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient7baseUrlSS">baseUrl</a></code>, <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient5orgIdSS">orgId</a></code>, and <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient5appIdSS">appId</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">clientAppURL</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="s">"</span><span class="se">\(</span><span class="n">baseUrl</span><span class="se">)</span><span class="s">/</span><span class="se">\(</span><span class="n">orgId</span><span class="se">)</span><span class="s">/</span><span class="se">\(</span><span class="n">appId</span><span class="se">)</span><span class="s">"</span> <span class="p">}</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
                     <a name="/s:vC11UsergridSDK14UsergridClient28persistCurrentUserInKeychainSb"></a>
                     <a name="//apple_ref/swift/Property/persistCurrentUserInKeychain" class="dashAnchor"></a>
                     <a class="token" href="#/s:vC11UsergridSDK14UsergridClient28persistCurrentUserInKeychainSb">persistCurrentUserInKeychain</a>
@@ -393,9 +428,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridClient12authFallbackOS_20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Property/authFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient12authFallbackOS_20UsergridAuthFallback">authFallback</a>
+                    <a name="/s:vC11UsergridSDK14UsergridClient8authModeOS_16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Property/authMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient8authModeOS_16UsergridAuthMode">authMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -403,14 +438,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code><a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a></code> value used to determine what type of token will be sent, if any.</p>
+                        <p>The <code><a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a></code> value used to determine what type of token will be sent, if any.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authFallback</span><span class="p">:</span> <span class="kt">UsergridAuthFallback</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authMode</span><span class="p">:</span> <span class="kt">UsergridAuthMode</span></code></pre>
 
                         </div>
                       </div>
@@ -431,9 +466,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIdSS5appIdSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(orgId:appId:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIdSS5appIdSS_S0_">init(orgId:appId:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS_S0_">init(orgId:appId:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -496,9 +531,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIdSS5appIdSS7baseUrlSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS7baseUrlSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIdSS5appIdSS7baseUrlSS_S0_">init(orgId:appId:baseUrl:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS7baseUrlSS_S0_">init(orgId:appId:baseUrl:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -574,9 +609,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT13configurationCS_20UsergridClientConfig_S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT13configurationCS_20UsergridClientConfig_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(configuration:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT13configurationCS_20UsergridClientConfig_S0_">init(configuration:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT13configurationCS_20UsergridClientConfig_S0_">init(configuration:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -637,9 +672,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -689,9 +724,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -747,9 +782,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -820,9 +855,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:pushToken:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -917,9 +952,47 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient9usingAuthFS0_FCS_12UsergridAuthDS0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15authForRequestsFT_GSqCS_12UsergridAuth_"></a>
+                    <a name="//apple_ref/swift/Method/authForRequests()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authForRequestsFT_GSqCS_12UsergridAuth_">authForRequests()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Determines the <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> object that will be used for all outgoing requests made.</p>
+
+<p>If there is a valid temporary <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> set by the functions <code>usingAuth</code> or <code>usingToken</code> it will return that.</p>
+
+<p>If there is a <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> logged in and the token of that user is valid then it will return that.</p>
+
+<p>Otherwise, if the <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient8authModeOS_16UsergridAuthMode">authMode</a></code> is <code>.App</code>, and the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> of the client is set and the token is valid it will return that.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">authForRequests</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">UsergridAuth</span><span class="p">?</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> if one is found or nil if not.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient9usingAuthFCS_12UsergridAuthDS0_"></a>
                     <a name="//apple_ref/swift/Method/usingAuth(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient9usingAuthFS0_FCS_12UsergridAuthDS0_">usingAuth(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient9usingAuthFCS_12UsergridAuthDS0_">usingAuth(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -971,9 +1044,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10usingTokenFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10usingTokenFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/usingToken(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10usingTokenFS0_FSSDS0_">usingToken(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10usingTokenFSSDS0_">usingToken(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1025,9 +1098,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1072,9 +1145,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1132,9 +1205,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1192,9 +1265,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:setAsCurrentUser:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1265,9 +1338,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient13resetPasswordFS0_FTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
                     <a name="//apple_ref/swift/Method/resetPassword(_:old:new:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13resetPasswordFS0_FTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1275,7 +1348,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Changes the give <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>&rsquo;s current password with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+                        <p>Changes the given <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>&rsquo;s current password.</p>
 
                       </div>
                       <div class="declaration">
@@ -1351,9 +1424,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutCurrentUser(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1398,9 +1471,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUserAllTokens(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1445,9 +1518,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10logoutUserFS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUser(_:token:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10logoutUserFS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1505,9 +1578,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient11sendRequestFS0_FTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/sendRequest(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11sendRequestFS0_FTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_">sendRequest(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_">sendRequest(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1582,9 +1655,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/GET(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1655,9 +1728,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/GET(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1715,9 +1788,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/GET(_:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:queryCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1786,9 +1859,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:uuidOrName:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1872,9 +1945,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1932,9 +2005,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2011,9 +2084,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2101,9 +2174,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2163,9 +2236,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:entitiesCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2229,9 +2302,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2302,9 +2375,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBodies:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2375,9 +2448,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:name:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2472,9 +2545,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2538,9 +2611,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2604,9 +2677,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2688,9 +2761,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:relationship:to:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2774,9 +2847,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2886,9 +2959,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2998,9 +3071,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:relationship:from:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3084,9 +3157,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3196,9 +3269,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3308,9 +3381,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:entity:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3325,7 +3398,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3394,9 +3467,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:type:uuidOrName:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:type:uuidOrName:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:type:uuidOrName:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3411,7 +3484,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3506,9 +3579,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:uuid:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:uuid:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:uuid:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3523,7 +3596,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">uuid</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">uuid</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3616,9 +3689,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient11uploadAssetFS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11uploadAssetFS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:asset:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3702,9 +3775,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient13downloadAssetFS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:contentType:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13downloadAssetFS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3790,7 +3863,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridClientConfig.html b/sdks/swift/docs/Classes/UsergridClientConfig.html
index 7a6a8c7..b7abeab 100644
--- a/sdks/swift/docs/Classes/UsergridClientConfig.html
+++ b/sdks/swift/docs/Classes/UsergridClientConfig.html
@@ -14,12 +14,12 @@
     <a title="UsergridClientConfig Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridClientConfig Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -260,9 +268,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK20UsergridClientConfig12authFallbackOS_20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Property/authFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig12authFallbackOS_20UsergridAuthFallback">authFallback</a>
+                    <a name="/s:vC11UsergridSDK20UsergridClientConfig8authModeOS_16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Property/authMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig8authModeOS_16UsergridAuthMode">authMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -270,14 +278,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code><a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a></code> value used to determine what type of token will be sent, if any.</p>
+                        <p>The <code><a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a></code> value used to determine what type of token will be sent, if any.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authFallback</span><span class="p">:</span> <span class="kt">UsergridAuthFallback</span> <span class="o">=</span> <span class="o">.</span><span class="kt">None</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authMode</span><span class="p">:</span> <span class="kt">UsergridAuthMode</span> <span class="o">=</span> <span class="o">.</span><span class="kt">User</span></code></pre>
 
                         </div>
                       </div>
@@ -354,9 +362,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIdSS5appIdSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(orgId:appId:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIdSS5appIdSS_S0_">init(orgId:appId:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS_S0_">init(orgId:appId:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -419,9 +427,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIdSS5appIdSS7baseUrlSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIdSS5appIdSS7baseUrlSS_S0_">init(orgId:appId:baseUrl:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS_S0_">init(orgId:appId:baseUrl:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -497,9 +505,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIdSS5appIdSS7baseUrlSS12authFallbackOS_20UsergridAuthFallback28persistCurrentUserInKeychainSb7appAuthGSqCS_15UsergridAppAuth__S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:authFallback:persistCurrentUserInKeychain:appAuth:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIdSS5appIdSS7baseUrlSS12authFallbackOS_20UsergridAuthFallback28persistCurrentUserInKeychainSb7appAuthGSqCS_15UsergridAppAuth__S0_">init(orgId:appId:baseUrl:authFallback:persistCurrentUserInKeychain:appAuth:)</a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS8authModeOS_16UsergridAuthMode28persistCurrentUserInKeychainSb7appAuthGSqCS_15UsergridAppAuth__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:authMode:persistCurrentUserInKeychain:appAuth:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS8authModeOS_16UsergridAuthMode28persistCurrentUserInKeychainSb7appAuthGSqCS_15UsergridAppAuth__S0_">init(orgId:appId:baseUrl:authMode:persistCurrentUserInKeychain:appAuth:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -514,7 +522,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">authFallback</span><span class="p">:</span><span class="kt">UsergridAuthFallback</span><span class="p">,</span> <span class="nv">persistCurrentUserInKeychain</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> <span class="nv">appAuth</span><span class="p">:</span><span class="kt">UsergridAppAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">authMode</span><span class="p">:</span><span class="kt">UsergridAuthMode</span><span class="p">,</span> <span class="nv">persistCurrentUserInKeychain</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> <span class="nv">appAuth</span><span class="p">:</span><span class="kt">UsergridAppAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -564,12 +572,12 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>authFallback</em>
+                                <em>authMode</em>
                                 </code>
                               </td>
                               <td>
                                 <div>
-                                  <p>The <code>UsergridAuthFallback</code> value used to determine what type of token will be sent, if any.</p>
+                                  <p>The <code>UsergridAuthMode</code> value used to determine what type of token will be sent, if any.</p>
 
                                 </div>
                               </td>
@@ -625,9 +633,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -677,9 +685,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfig15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfig15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfig15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfig15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -726,7 +734,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridDevice.html b/sdks/swift/docs/Classes/UsergridDevice.html
index 655c810..9cda8aa 100644
--- a/sdks/swift/docs/Classes/UsergridDevice.html
+++ b/sdks/swift/docs/Classes/UsergridDevice.html
@@ -14,12 +14,12 @@
     <a title="UsergridDevice Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridDevice Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -172,9 +180,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:sC11UsergridSDK14UsergridDevice9subscriptFSSGSqPSs9AnyObject__"></a>
+                    <a name="/s:iC11UsergridSDK14UsergridDevice9subscriptFSSGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/subscript(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:sC11UsergridSDK14UsergridDevice9subscriptFSSGSqPSs9AnyObject__">subscript(_:)</a>
+                    <a class="token" href="#/s:iC11UsergridSDK14UsergridDevice9subscriptFSSGSqPs9AnyObject__">subscript(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -221,33 +229,6 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridDevice4uuidGSQSS_"></a>
-                    <a name="//apple_ref/swift/Property/uuid" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridDevice4uuidGSQSS_">uuid</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Property helper method for the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> objects <code>uuid</code>.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="language">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">uuid</span><span class="p">:</span> <span class="kt">String</span><span class="o">!</span> <span class="p">{</span> <span class="k">return</span> <span class="k">super</span><span class="p">[</span><span class="kt">UsergridEntityProperties</span><span class="o">.</span><span class="kt">UUID</span><span class="o">.</span><span class="n">stringValue</span><span class="p">]</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
-
-                        </div>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
                     <a name="/s:vC11UsergridSDK14UsergridDevice5modelSS"></a>
                     <a name="//apple_ref/swift/Property/model" class="dashAnchor"></a>
                     <a class="token" href="#/s:vC11UsergridSDK14UsergridDevice5modelSS">model</a>
@@ -367,9 +348,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridDevicecFMS0_FT_S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridDevicecFT_S0_"></a>
                     <a name="//apple_ref/swift/Method/init()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFMS0_FT_S0_">init()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFT_S0_">init()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -401,9 +382,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridDevicecFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridDevicecFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
                     <a name="//apple_ref/swift/Method/init(type:name:propertyDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_">init(type:name:propertyDict:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(type:name:propertyDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -490,9 +471,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridDevicecFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridDevicecFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -542,9 +523,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridDevice15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridDevice15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -586,6 +567,144 @@
                     </section>
                   </div>
                 </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevice4saveFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/save(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice4saveFTGSqFT8responseCS_16UsergridResponse_T___T_">save(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Performs a PUT (or POST if no UUID is found) on the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+<p>If this device is equal to <code><a href="../Classes/UsergridDevice.html#/s:ZvC11UsergridSDK14UsergridDevice12sharedDeviceS0_">UsergridDevice.sharedDevice</a></code> it will also update the shared device on the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="kd">func</span> <span class="nf">save</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>An optional completion block that, if successful, will contain the updated/saved <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevice4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/save(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">save(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Performs a PUT (or POST if no UUID is found) on the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code>.</p>
+
+<p>If this device is equal to <code><a href="../Classes/UsergridDevice.html#/s:ZvC11UsergridSDK14UsergridDevice12sharedDeviceS0_">UsergridDevice.sharedDevice</a></code> it will also update the shared device on the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="kd">func</span> <span class="nf">save</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The client to use when saving.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>An optional completion block that, if successful, will contain the updated/saved <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK14UsergridDevice26saveSharedDeviceToKeychainFT_T_"></a>
+                    <a name="//apple_ref/swift/Method/saveSharedDeviceToKeychain()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridDevice26saveSharedDeviceToKeychainFT_T_">saveSharedDeviceToKeychain()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Saves the <code><a href="../Classes/UsergridDevice.html#/s:ZvC11UsergridSDK14UsergridDevice12sharedDeviceS0_">UsergridDevice.sharedDevice</a></code> to the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">saveSharedDeviceToKeychain</span><span class="p">()</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
               </ul>
             </div>
             <div class="task-group">
@@ -600,9 +719,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK14UsergridDevice24commonDevicePropertyDictFMS0_FT_GVSs10DictionarySSPSs9AnyObject__"></a>
+                    <a name="/s:ZFC11UsergridSDK14UsergridDevice24commonDevicePropertyDictFT_GVs10DictionarySSPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/commonDevicePropertyDict()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridDevice24commonDevicePropertyDictFMS0_FT_GVSs10DictionarySSPSs9AnyObject__">commonDevicePropertyDict()</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridDevice24commonDevicePropertyDictFT_GVs10DictionarySSPs9AnyObject__">commonDevicePropertyDict()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -634,7 +753,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridEntity.html b/sdks/swift/docs/Classes/UsergridEntity.html
index 7d937fd..280138b 100644
--- a/sdks/swift/docs/Classes/UsergridEntity.html
+++ b/sdks/swift/docs/Classes/UsergridEntity.html
@@ -14,12 +14,12 @@
     <a title="UsergridEntity Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridEntity Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -172,9 +180,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:sC11UsergridSDK14UsergridEntity9subscriptFSSGSqPSs9AnyObject__"></a>
+                    <a name="/s:iC11UsergridSDK14UsergridEntity9subscriptFSSGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/subscript(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:sC11UsergridSDK14UsergridEntity9subscriptFSSGSqPSs9AnyObject__">subscript(_:)</a>
+                    <a class="token" href="#/s:iC11UsergridSDK14UsergridEntity9subscriptFSSGSqPs9AnyObject__">subscript(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -235,7 +243,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">asset</span><span class="p">:</span> <span class="kt">UsergridAsset</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">asset</span><span class="p">:</span> <span class="kt">UsergridAsset</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -262,7 +270,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">private(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">fileMetaData</span> <span class="p">:</span> <span class="kt">UsergridFileMetaData</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">fileMetaData</span> <span class="p">:</span> <span class="kt">UsergridFileMetaData</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -515,9 +523,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVSs10DictionarySSPSs9AnyObject__"></a>
+                    <a name="/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVs10DictionarySSPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Property/jsonObjectValue" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVSs10DictionarySSPSs9AnyObject__">jsonObjectValue</a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVs10DictionarySSPs9AnyObject__">jsonObjectValue</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -634,9 +642,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntitycFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntitycFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
                     <a name="//apple_ref/swift/Method/init(type:name:propertyDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_">init(type:name:propertyDict:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(type:name:propertyDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -712,9 +720,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK14UsergridEntity13mapCustomTypeFMS0_FTSS10toSubclassMS0__T_"></a>
+                    <a name="/s:ZFC11UsergridSDK14UsergridEntity13mapCustomTypeFTSS10toSubclassMS0__T_"></a>
                     <a name="//apple_ref/swift/Method/mapCustomType(_:toSubclass:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity13mapCustomTypeFMS0_FTSS10toSubclassMS0__T_">mapCustomType(_:toSubclass:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity13mapCustomTypeFTSS10toSubclassMS0__T_">mapCustomType(_:toSubclass:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -772,9 +780,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK14UsergridEntity6entityFMS0_FT8jsonDictGVSs10DictionarySSPSs9AnyObject___GSqS0__"></a>
+                    <a name="/s:ZFC11UsergridSDK14UsergridEntity6entityFT8jsonDictGVs10DictionarySSPs9AnyObject___GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/entity(jsonDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity6entityFMS0_FT8jsonDictGVSs10DictionarySSPSs9AnyObject___GSqS0__">entity(jsonDict:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity6entityFT8jsonDictGVs10DictionarySSPs9AnyObject___GSqS0__">entity(jsonDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -824,9 +832,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK14UsergridEntity8entitiesFMS0_FT9jsonArrayGSaGVSs10DictionarySSPSs9AnyObject____GSaS0__"></a>
+                    <a name="/s:ZFC11UsergridSDK14UsergridEntity8entitiesFT9jsonArrayGSaGVs10DictionarySSPs9AnyObject____GSaS0__"></a>
                     <a name="//apple_ref/swift/Method/entities(jsonArray:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity8entitiesFMS0_FT9jsonArrayGSaGVSs10DictionarySSPSs9AnyObject____GSaS0__">entities(jsonArray:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity8entitiesFT9jsonArrayGSaGVs10DictionarySSPs9AnyObject____GSaS0__">entities(jsonArray:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -887,9 +895,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntitycFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntitycFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -939,9 +947,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -997,9 +1005,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11putPropertyFS0_FTSS5valueGSqPSs9AnyObject___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity11putPropertyFTSS5valueGSqPs9AnyObject___T_"></a>
                     <a name="//apple_ref/swift/Method/putProperty(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11putPropertyFS0_FTSS5valueGSqPSs9AnyObject___T_">putProperty(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11putPropertyFTSS5valueGSqPs9AnyObject___T_">putProperty(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1057,9 +1065,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity13putPropertiesFS0_FGVSs10DictionarySSPSs9AnyObject__T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity13putPropertiesFGVs10DictionarySSPs9AnyObject__T_"></a>
                     <a name="//apple_ref/swift/Method/putProperties(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13putPropertiesFS0_FGVSs10DictionarySSPSs9AnyObject__T_">putProperties(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13putPropertiesFGVs10DictionarySSPs9AnyObject__T_">putProperties(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1104,9 +1112,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity14removePropertyFS0_FSST_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity14removePropertyFSST_"></a>
                     <a name="//apple_ref/swift/Method/removeProperty(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14removePropertyFS0_FSST_">removeProperty(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14removePropertyFSST_">removeProperty(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1151,9 +1159,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity16removePropertiesFS0_FGSaSS_T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity16removePropertiesFGSaSS_T_"></a>
                     <a name="//apple_ref/swift/Method/removeProperties(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity16removePropertiesFS0_FGSaSS_T_">removeProperties(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity16removePropertiesFGSaSS_T_">removeProperties(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1198,9 +1206,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6appendFS0_FTSS5valuePSs9AnyObject__T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6appendFTSS5valuePs9AnyObject__T_"></a>
                     <a name="//apple_ref/swift/Method/append(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6appendFS0_FTSS5valuePSs9AnyObject__T_">append(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6appendFTSS5valuePs9AnyObject__T_">append(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1258,9 +1266,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6insertFS0_FTSS5valuePSs9AnyObject_5indexSi_T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6insertFTSS5valuePs9AnyObject_5indexSi_T_"></a>
                     <a name="//apple_ref/swift/Method/insert(_:value:index:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6insertFS0_FTSS5valuePSs9AnyObject_5indexSi_T_">insert(_:value:index:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6insertFTSS5valuePs9AnyObject_5indexSi_T_">insert(_:value:index:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1331,9 +1339,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity3popFS0_FSST_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity3popFSST_"></a>
                     <a name="//apple_ref/swift/Method/pop(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity3popFS0_FSST_">pop(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity3popFSST_">pop(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1378,9 +1386,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity5shiftFS0_FSST_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity5shiftFSST_"></a>
                     <a name="//apple_ref/swift/Method/shift(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity5shiftFS0_FSST_">shift(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity5shiftFSST_">shift(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1436,9 +1444,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/reload(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFTGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1483,9 +1491,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/reload(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1543,9 +1551,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/save(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">save(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFTGSqFT8responseCS_16UsergridResponse_T___T_">save(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1590,9 +1598,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/save(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">save(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">save(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1650,9 +1658,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/remove(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFTGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1697,9 +1705,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/remove(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1768,9 +1776,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS1__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqS1__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS1__5errorGSqSS__T___T_">uploadAsset(_:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqS1__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1841,9 +1849,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:asset:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1927,9 +1935,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2000,9 +2008,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:contentType:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2097,9 +2105,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:toEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:toEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:toEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2170,9 +2178,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:relationship:toEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:toEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:toEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2256,9 +2264,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:fromEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:fromEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:fromEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2329,9 +2337,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:relationship:fromEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:fromEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:fromEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2415,9 +2423,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2432,7 +2440,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -2501,9 +2509,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/getConnections(_:direction:relationship:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:direction:relationship:query:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:direction:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2518,7 +2526,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -2599,10 +2607,73 @@
                 </li>
               </ul>
             </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Helper%20methods"></a>
+                <a name="//apple_ref/swift/Section/Helper methods" class="dashAnchor"></a>
+                <a href="#/Helper%20methods">
+                  <h3 class="section-name">Helper methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity15isEqualToEntityFGSqS0__Sb"></a>
+                    <a name="//apple_ref/swift/Method/isEqualToEntity(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity15isEqualToEntityFGSqS0__Sb">isEqualToEntity(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Determines if the two <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects are equal.  i.e. they have the same non nil uuidOrName.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">isEqualToEntity</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>entity</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity to check.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>If the two <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects are equal.  i.e. they have the same non nil uuidOrName.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridFileMetaData.html b/sdks/swift/docs/Classes/UsergridFileMetaData.html
index 3f825d3..1cc8ccf 100644
--- a/sdks/swift/docs/Classes/UsergridFileMetaData.html
+++ b/sdks/swift/docs/Classes/UsergridFileMetaData.html
@@ -14,12 +14,12 @@
     <a title="UsergridFileMetaData Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridFileMetaData Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -322,7 +330,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>NSDate</code> object corresponding to the last modified time stamp.</p>
+                        <p>The <code><a href="../Extensions/NSDate.html">NSDate</a></code> object corresponding to the last modified time stamp.</p>
 
                       </div>
                       <div class="declaration">
@@ -350,9 +358,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFMS0_FT16fileMetaDataJSONGVSs10DictionarySSPSs9AnyObject___S0_"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFT16fileMetaDataJSONGVs10DictionarySSPs9AnyObject___S0_"></a>
                     <a name="//apple_ref/swift/Method/init(fileMetaDataJSON:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFMS0_FT16fileMetaDataJSONGVSs10DictionarySSPSs9AnyObject___S0_">init(fileMetaDataJSON:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFT16fileMetaDataJSONGVs10DictionarySSPs9AnyObject___S0_">init(fileMetaDataJSON:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -413,9 +421,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -465,9 +473,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridFileMetaData15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridFileMetaData15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaData15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaData15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -514,7 +522,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridQuery.html b/sdks/swift/docs/Classes/UsergridQuery.html
index a5db6e2..5b8d3e5 100644
--- a/sdks/swift/docs/Classes/UsergridQuery.html
+++ b/sdks/swift/docs/Classes/UsergridQuery.html
@@ -14,12 +14,12 @@
     <a title="UsergridQuery Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridQuery Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -179,9 +187,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuerycFMS0_FTGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuerycFTGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuerycFMS0_FTGSqSS__S0_">init(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuerycFTGSqSS__S0_">init(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -242,9 +250,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFS0_FV10ObjectiveC6NSZonePSs9AnyObject_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFV10ObjectiveC6NSZonePs9AnyObject_"></a>
                     <a name="//apple_ref/swift/Method/copyWithZone(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFS0_FV10ObjectiveC6NSZonePSs9AnyObject_">copyWithZone(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFV10ObjectiveC6NSZonePs9AnyObject_">copyWithZone(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -305,9 +313,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery5buildFS0_FTSb_SS"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery5buildFTSb_SS"></a>
                     <a name="//apple_ref/swift/Method/build(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5buildFS0_FTSb_SS">build(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5buildFTSb_SS">build(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -368,9 +376,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery8containsFS0_FTSS5valueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery8containsFTSS5valueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/contains(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8containsFS0_FTSS5valueSS_DS0_">contains(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8containsFTSS5valueSS_DS0_">contains(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -433,9 +441,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery14containsStringFS0_FTSS5valueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery14containsStringFTSS5valueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/containsString(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14containsStringFS0_FTSS5valueSS_DS0_">containsString(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14containsStringFTSS5valueSS_DS0_">containsString(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -498,9 +506,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery12containsWordFS0_FTSS5valueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery12containsWordFTSS5valueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/containsWord(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12containsWordFS0_FTSS5valueSS_DS0_">containsWord(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12containsWordFTSS5valueSS_DS0_">containsWord(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -563,9 +571,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery9ascendingFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery9ascendingFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/ascending(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery9ascendingFS0_FSSDS0_">ascending(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery9ascendingFSSDS0_">ascending(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -615,9 +623,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3ascFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3ascFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/asc(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3ascFS0_FSSDS0_">asc(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3ascFSSDS0_">asc(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -667,9 +675,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery10descendingFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery10descendingFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/descending(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10descendingFS0_FSSDS0_">descending(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10descendingFSSDS0_">descending(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -719,9 +727,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery4descFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery4descFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/desc(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4descFS0_FSSDS0_">desc(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4descFSSDS0_">desc(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -771,9 +779,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery6filterFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery6filterFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/filter(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6filterFS0_FTSS5valuePSs9AnyObject__DS0_">filter(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6filterFTSS5valuePs9AnyObject__DS0_">filter(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -836,9 +844,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery6equalsFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery6equalsFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/equals(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6equalsFS0_FTSS5valuePSs9AnyObject__DS0_">equals(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6equalsFTSS5valuePs9AnyObject__DS0_">equals(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -901,9 +909,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2eqFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2eqFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/eq(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2eqFS0_FTSS5valuePSs9AnyObject__DS0_">eq(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2eqFTSS5valuePs9AnyObject__DS0_">eq(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -966,9 +974,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery11greaterThanFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery11greaterThanFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/greaterThan(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery11greaterThanFS0_FTSS5valuePSs9AnyObject__DS0_">greaterThan(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery11greaterThanFTSS5valuePs9AnyObject__DS0_">greaterThan(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1031,9 +1039,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2gtFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2gtFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/gt(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2gtFS0_FTSS5valuePSs9AnyObject__DS0_">gt(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2gtFTSS5valuePs9AnyObject__DS0_">gt(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1096,9 +1104,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/greaterThanOrEqual(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_">greaterThanOrEqual(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFTSS5valuePs9AnyObject__DS0_">greaterThanOrEqual(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1161,9 +1169,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3gteFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3gteFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/gte(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3gteFS0_FTSS5valuePSs9AnyObject__DS0_">gte(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3gteFTSS5valuePs9AnyObject__DS0_">gte(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1226,9 +1234,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery8lessThanFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery8lessThanFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lessThan(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8lessThanFS0_FTSS5valuePSs9AnyObject__DS0_">lessThan(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8lessThanFTSS5valuePs9AnyObject__DS0_">lessThan(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1291,9 +1299,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2ltFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2ltFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lt(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2ltFS0_FTSS5valuePSs9AnyObject__DS0_">lt(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2ltFTSS5valuePs9AnyObject__DS0_">lt(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1356,9 +1364,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lessThanOrEqual(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_">lessThanOrEqual(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFTSS5valuePs9AnyObject__DS0_">lessThanOrEqual(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1421,9 +1429,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3lteFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3lteFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lte(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3lteFS0_FTSS5valuePSs9AnyObject__DS0_">lte(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3lteFTSS5valuePs9AnyObject__DS0_">lte(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1486,9 +1494,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery14locationWithinFS0_FTSf8latitudeSf9longitudeSf_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery14locationWithinFTSf8latitudeSf9longitudeSf_DS0_"></a>
                     <a name="//apple_ref/swift/Method/locationWithin(_:latitude:longitude:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14locationWithinFS0_FTSf8latitudeSf9longitudeSf_DS0_">locationWithin(_:latitude:longitude:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14locationWithinFTSf8latitudeSf9longitudeSf_DS0_">locationWithin(_:latitude:longitude:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1564,9 +1572,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2orFS0_FT_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2orFT_DS0_"></a>
                     <a name="//apple_ref/swift/Method/or()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2orFS0_FT_DS0_">or()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2orFT_DS0_">or()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1596,9 +1604,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3andFS0_FT_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3andFT_DS0_"></a>
                     <a name="//apple_ref/swift/Method/and()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3andFS0_FT_DS0_">and()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3andFT_DS0_">and()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1628,9 +1636,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3notFS0_FT_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3notFT_DS0_"></a>
                     <a name="//apple_ref/swift/Method/not()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3notFS0_FT_DS0_">not()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3notFT_DS0_">not()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1660,9 +1668,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery4sortFS0_FTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery4sortFTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_"></a>
                     <a name="//apple_ref/swift/Method/sort(_:sortOrder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4sortFS0_FTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_">sort(_:sortOrder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4sortFTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_">sort(_:sortOrder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1725,9 +1733,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery10collectionFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery10collectionFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/collection(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10collectionFS0_FSSDS0_">collection(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10collectionFSSDS0_">collection(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1777,9 +1785,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery4typeFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery4typeFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/type(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4typeFS0_FSSDS0_">type(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4typeFSSDS0_">type(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1829,9 +1837,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery5limitFS0_FSiDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery5limitFSiDS0_"></a>
                     <a name="//apple_ref/swift/Method/limit(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5limitFS0_FSiDS0_">limit(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5limitFSiDS0_">limit(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1881,9 +1889,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2qlFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2qlFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/ql(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2qlFS0_FSSDS0_">ql(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2qlFSSDS0_">ql(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1933,9 +1941,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery6cursorFS0_FGSqSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery6cursorFGSqSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/cursor(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6cursorFS0_FGSqSS_DS0_">cursor(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6cursorFGSqSS_DS0_">cursor(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1985,9 +1993,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery10fromStringFS0_FGSqSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery10fromStringFGSqSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10fromStringFS0_FGSqSS_DS0_">fromString(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10fromStringFGSqSS_DS0_">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2037,9 +2045,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery7urlTermFS0_FTSS11equalsValueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery7urlTermFTSS11equalsValueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/urlTerm(_:equalsValue:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery7urlTermFS0_FTSS11equalsValueSS_DS0_">urlTerm(_:equalsValue:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery7urlTermFTSS11equalsValueSS_DS0_">urlTerm(_:equalsValue:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2102,9 +2110,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/addOperationRequirement(_:operation:stringValue:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_">addOperationRequirement(_:operation:stringValue:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_">addOperationRequirement(_:operation:stringValue:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2180,9 +2188,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_"></a>
                     <a name="//apple_ref/swift/Method/addOperationRequirement(_:operation:intValue:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_">addOperationRequirement(_:operation:intValue:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_">addOperationRequirement(_:operation:intValue:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2260,7 +2268,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridRequest.html b/sdks/swift/docs/Classes/UsergridRequest.html
index 868cb77..0405ff5 100644
--- a/sdks/swift/docs/Classes/UsergridRequest.html
+++ b/sdks/swift/docs/Classes/UsergridRequest.html
@@ -14,12 +14,12 @@
     <a title="UsergridRequest Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridRequest Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -314,9 +322,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK15UsergridRequest7headersGSqGVSs10DictionarySSSS__"></a>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest7headersGSqGVs10DictionarySSSS__"></a>
                     <a name="//apple_ref/swift/Property/headers" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest7headersGSqGVSs10DictionarySSSS__">headers</a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest7headersGSqGVs10DictionarySSSS__">headers</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -341,9 +349,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK15UsergridRequest8jsonBodyGSqPSs9AnyObject__"></a>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest8jsonBodyGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Property/jsonBody" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest8jsonBodyGSqPSs9AnyObject__">jsonBody</a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest8jsonBodyGSqPs9AnyObject__">jsonBody</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -368,9 +376,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK15UsergridRequest11queryParamsGSqGVSs10DictionarySSSS__"></a>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest11queryParamsGSqGVs10DictionarySSSS__"></a>
                     <a name="//apple_ref/swift/Property/queryParams" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest11queryParamsGSqGVSs10DictionarySSSS__">queryParams</a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest11queryParamsGSqGVs10DictionarySSSS__">queryParams</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -406,9 +414,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridRequestcFMS0_FT6methodOS_18UsergridHttpMethod7baseUrlSS5pathsGSqGSaSS__5queryGSqCS_13UsergridQuery_4authGSqCS_12UsergridAuth_7headersGSqGVSs10DictionarySSSS__8jsonBodyGSqPSs9AnyObject__11queryParamsGSqGS4_SSSS___S0_"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridRequestcFT6methodOS_18UsergridHttpMethod7baseUrlSS5pathsGSqGSaSS__5queryGSqCS_13UsergridQuery_4authGSqCS_12UsergridAuth_7headersGSqGVs10DictionarySSSS__8jsonBodyGSqPs9AnyObject__11queryParamsGSqGS4_SSSS___S0_"></a>
                     <a name="//apple_ref/swift/Method/init(method:baseUrl:paths:query:auth:headers:jsonBody:queryParams:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridRequestcFMS0_FT6methodOS_18UsergridHttpMethod7baseUrlSS5pathsGSqGSaSS__5queryGSqCS_13UsergridQuery_4authGSqCS_12UsergridAuth_7headersGSqGVSs10DictionarySSSS__8jsonBodyGSqPSs9AnyObject__11queryParamsGSqGS4_SSSS___S0_">init(method:baseUrl:paths:query:auth:headers:jsonBody:queryParams:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridRequestcFT6methodOS_18UsergridHttpMethod7baseUrlSS5pathsGSqGSaSS__5queryGSqCS_13UsergridQuery_4authGSqCS_12UsergridAuth_7headersGSqGVs10DictionarySSSS__8jsonBodyGSqPs9AnyObject__11queryParamsGSqGS4_SSSS___S0_">init(method:baseUrl:paths:query:auth:headers:jsonBody:queryParams:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -567,9 +575,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridRequest17buildNSURLRequestFS0_FT_CSo12NSURLRequest"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridRequest17buildNSURLRequestFT_CSo12NSURLRequest"></a>
                     <a name="//apple_ref/swift/Method/buildNSURLRequest()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridRequest17buildNSURLRequestFS0_FT_CSo12NSURLRequest">buildNSURLRequest()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridRequest17buildNSURLRequestFT_CSo12NSURLRequest">buildNSURLRequest()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -601,7 +609,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridResponse.html b/sdks/swift/docs/Classes/UsergridResponse.html
index d945c75..6ff0433 100644
--- a/sdks/swift/docs/Classes/UsergridResponse.html
+++ b/sdks/swift/docs/Classes/UsergridResponse.html
@@ -14,12 +14,12 @@
     <a title="UsergridResponse Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridResponse Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -208,9 +216,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVSs10DictionarySSPSs9AnyObject___"></a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVs10DictionarySSPs9AnyObject___"></a>
                     <a name="//apple_ref/swift/Property/responseJSON" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVSs10DictionarySSPSs9AnyObject___">responseJSON</a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVs10DictionarySSPs9AnyObject___">responseJSON</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -316,9 +324,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse7headersGSqGVSs10DictionarySSSS__"></a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse7headersGSqGVs10DictionarySSSS__"></a>
                     <a name="//apple_ref/swift/Property/headers" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse7headersGSqGVSs10DictionarySSSS__">headers</a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse7headersGSqGVs10DictionarySSSS__">headers</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -613,9 +621,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse11stringValueGSqSS_"></a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse11stringValueSS"></a>
                     <a name="//apple_ref/swift/Property/stringValue" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse11stringValueGSqSS_">stringValue</a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse11stringValueSS">stringValue</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -630,7 +638,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span> <span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
 
                         </div>
                       </div>
@@ -705,9 +713,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_9errorNameSS16errorDescriptionSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_9errorNameSS16errorDescriptionSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(client:errorName:errorDescription:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_9errorNameSS16errorDescriptionSS_S0_">init(client:errorName:errorDescription:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_9errorNameSS16errorDescriptionSS_S0_">init(client:errorName:errorDescription:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -785,9 +793,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(client:data:response:error:query:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_">init(client:data:response:error:query:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_">init(client:data:response:error:query:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -900,9 +908,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridResponse12loadNextPageFS0_FFT8responseS0__T_T_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridResponse12loadNextPageFFT8responseS0__T_T_"></a>
                     <a name="//apple_ref/swift/Method/loadNextPage(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponse12loadNextPageFS0_FFT8responseS0__T_T_">loadNextPage(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponse12loadNextPageFFT8responseS0__T_T_">loadNextPage(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -951,7 +959,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridResponseError.html b/sdks/swift/docs/Classes/UsergridResponseError.html
index 99b74fe..46fd05a 100644
--- a/sdks/swift/docs/Classes/UsergridResponseError.html
+++ b/sdks/swift/docs/Classes/UsergridResponseError.html
@@ -14,12 +14,12 @@
     <a title="UsergridResponseError Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridResponseError Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -323,9 +331,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK21UsergridResponseErrorcFMS0_FT9errorNameSS16errorDescriptionSS9exceptionGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK21UsergridResponseErrorcFT9errorNameSS16errorDescriptionSS9exceptionGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(errorName:errorDescription:exception:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK21UsergridResponseErrorcFMS0_FT9errorNameSS16errorDescriptionSS9exceptionGSqSS__S0_">init(errorName:errorDescription:exception:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK21UsergridResponseErrorcFT9errorNameSS16errorDescriptionSS9exceptionGSqSS__S0_">init(errorName:errorDescription:exception:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -401,9 +409,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK21UsergridResponseErrorcFMS0_FT14jsonDictionaryGVSs10DictionarySSPSs9AnyObject___GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK21UsergridResponseErrorcFT14jsonDictionaryGVs10DictionarySSPs9AnyObject___GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(jsonDictionary:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK21UsergridResponseErrorcFMS0_FT14jsonDictionaryGVSs10DictionarySSPSs9AnyObject___GSqS0__">init(jsonDictionary:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK21UsergridResponseErrorcFT14jsonDictionaryGVs10DictionarySSPs9AnyObject___GSqS0__">init(jsonDictionary:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -455,7 +463,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridUser.html b/sdks/swift/docs/Classes/UsergridUser.html
index 25d3739..aa93547 100644
--- a/sdks/swift/docs/Classes/UsergridUser.html
+++ b/sdks/swift/docs/Classes/UsergridUser.html
@@ -14,12 +14,12 @@
     <a title="UsergridUser Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridUser Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -170,9 +178,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:sC11UsergridSDK12UsergridUser9subscriptFSSGSqPSs9AnyObject__"></a>
+                    <a name="/s:iC11UsergridSDK12UsergridUser9subscriptFSSGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/subscript(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:sC11UsergridSDK12UsergridUser9subscriptFSSGSqPSs9AnyObject__">subscript(_:)</a>
+                    <a class="token" href="#/s:iC11UsergridSDK12UsergridUser9subscriptFSSGSqPs9AnyObject__">subscript(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -535,9 +543,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(name:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameGSqSS__S0_">init(name:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS__S0_">init(name:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -587,9 +595,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
                     <a name="//apple_ref/swift/Method/init(type:name:propertyDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_">init(type:name:propertyDict:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(type:name:propertyDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -665,9 +673,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameSS12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
                     <a name="//apple_ref/swift/Method/init(name:propertyDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_">init(name:propertyDict:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameSS12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(name:propertyDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -730,9 +738,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS5emailSS8passwordGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameSS5emailSS8passwordGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(name:email:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS5emailSS8passwordGSqSS__S0_">init(name:email:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameSS5emailSS8passwordGSqSS__S0_">init(name:email:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -808,9 +816,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT5emailSS8passwordGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT5emailSS8passwordGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(email:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT5emailSS8passwordGSqSS__S0_">init(email:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT5emailSS8passwordGSqSS__S0_">init(email:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -873,9 +881,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS8usernameSS8passwordGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameSS8usernameSS8passwordGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(name:username:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS8usernameSS8passwordGSqSS__S0_">init(name:username:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameSS8usernameSS8passwordGSqSS__S0_">init(name:username:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -951,9 +959,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT8usernameSS8passwordGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT8usernameSS8passwordGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(username:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT8usernameSS8passwordGSqSS__S0_">init(username:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT8usernameSS8passwordGSqSS__S0_">init(username:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1016,9 +1024,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameGSqSS_5emailGSqSS_8usernameGSqSS_8passwordGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS_5emailGSqSS_8usernameGSqSS_8passwordGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(name:email:username:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameGSqSS_5emailGSqSS_8usernameGSqSS_8passwordGSqSS__S0_">init(name:email:username:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS_5emailGSqSS_8usernameGSqSS_8passwordGSqSS__S0_">init(name:email:username:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1118,9 +1126,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1170,9 +1178,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1228,9 +1236,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFMS0_FTGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_"></a>
+                    <a name="/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_"></a>
                     <a name="//apple_ref/swift/Method/checkAvailable(_:username:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFMS0_FTGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_">checkAvailable(_:username:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_">checkAvailable(_:username:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1301,9 +1309,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFMS0_FTCS_14UsergridClient5emailGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_"></a>
+                    <a name="/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTCS_14UsergridClient5emailGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_"></a>
                     <a name="//apple_ref/swift/Method/checkAvailable(_:email:username:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFMS0_FTCS_14UsergridClient5emailGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_">checkAvailable(_:email:username:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTCS_14UsergridClient5emailGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_">checkAvailable(_:email:username:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1398,9 +1406,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6createFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6createFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/create(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">create(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFTGSqFT8responseCS_16UsergridResponse_T___T_">create(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1445,9 +1453,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6createFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6createFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/create(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">create(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">create(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1505,9 +1513,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFS0_FTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/login(_:password:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFS0_FTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">login(_:password:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">login(_:password:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1580,9 +1588,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFS0_FTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/login(_:username:password:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFS0_FTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">login(_:username:password:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">login(_:username:password:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1668,9 +1676,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser13resetPasswordFS0_FTSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser13resetPasswordFTSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
                     <a name="//apple_ref/swift/Method/resetPassword(_:new:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser13resetPasswordFS0_FTSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:new:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser13resetPasswordFTSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:new:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1741,9 +1749,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser13resetPasswordFS0_FTCS_14UsergridClient3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser13resetPasswordFTCS_14UsergridClient3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
                     <a name="//apple_ref/swift/Method/resetPassword(_:old:new:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser13resetPasswordFS0_FTCS_14UsergridClient3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser13resetPasswordFTCS_14UsergridClient3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1827,9 +1835,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser14reauthenticateFS0_FTGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser14reauthenticateFTGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/reauthenticate(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser14reauthenticateFS0_FTGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">reauthenticate(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser14reauthenticateFTGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">reauthenticate(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1874,9 +1882,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser14reauthenticateFS0_FTCS_14UsergridClient10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser14reauthenticateFTCS_14UsergridClient10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/reauthenticate(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser14reauthenticateFS0_FTCS_14UsergridClient10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">reauthenticate(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser14reauthenticateFTCS_14UsergridClient10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">reauthenticate(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1934,9 +1942,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logout(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFTGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1981,9 +1989,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logout(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2041,9 +2049,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser15connectToDeviceFS0_FTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connectToDevice(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15connectToDeviceFS0_FTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connectToDevice(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connectToDevice(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2101,9 +2109,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser15connectToDeviceFS0_FTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connectToDevice(_:device:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15connectToDeviceFS0_FTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connectToDevice(_:device:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connectToDevice(_:device:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2174,9 +2182,116 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFS0_FTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnectedDevice(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTGSqFT8responseCS_16UsergridResponse_T___T_">getConnectedDevice(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected device using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnectedDevice</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnectedDevice(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnectedDevice(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected device.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnectedDevice</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridClient</code> object to use for connecting.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnectFromDevice(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFS0_FTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnectFromDevice(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnectFromDevice(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2234,9 +2349,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFS0_FTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnectFromDevice(_:device:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFS0_FTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnectFromDevice(_:device:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnectFromDevice(_:device:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2309,7 +2424,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Classes/UsergridUserAuth.html b/sdks/swift/docs/Classes/UsergridUserAuth.html
index 7818929..15b46fb 100644
--- a/sdks/swift/docs/Classes/UsergridUserAuth.html
+++ b/sdks/swift/docs/Classes/UsergridUserAuth.html
@@ -14,12 +14,12 @@
     <a title="UsergridUserAuth Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridUserAuth Class Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -215,9 +223,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT8usernameSS8passwordSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFT8usernameSS8passwordSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(username:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT8usernameSS8passwordSS_S0_">init(username:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFT8usernameSS8passwordSS_S0_">init(username:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -291,9 +299,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -334,7 +342,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+                        <p>A decoded <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> object.</p>
 
                       </div>
                     </section>
@@ -343,9 +351,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -392,7 +400,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums.html b/sdks/swift/docs/Enums.html
index d5f70b5..56fabb8 100644
--- a/sdks/swift/docs/Enums.html
+++ b/sdks/swift/docs/Enums.html
@@ -13,12 +13,12 @@
     <a title="Enums  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="index.html">UsergridSDK Reference</a>
+        <a href="index.html"> Reference</a>
         <img id="carat" src="img/carat.png" />
         Enums  Reference
       </p>
@@ -91,7 +91,7 @@
             <a href="Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -120,6 +120,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -163,9 +171,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:O11UsergridSDK20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Enum/UsergridAuthFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:O11UsergridSDK20UsergridAuthFallback">UsergridAuthFallback</a>
+                    <a name="/s:O11UsergridSDK16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Enum/UsergridAuthMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:O11UsergridSDK16UsergridAuthMode">UsergridAuthMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -173,15 +181,15 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>An enumeration that is used to determine what the <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> will fallback to depending on certain authorization conditions.</p>
+                        <p>An enumeration that is used to determine what the <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> will use for authorization.</p>
 
-                        <a href="Enums/UsergridAuthFallback.html" class="slightly-smaller">See more</a>
+                        <a href="Enums/UsergridAuthMode.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthFallback</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthMode</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                         </div>
                       </div>
@@ -417,7 +425,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridAuthMode.html b/sdks/swift/docs/Enums/UsergridAuthMode.html
new file mode 100644
index 0000000..7ed672a
--- /dev/null
+++ b/sdks/swift/docs/Enums/UsergridAuthMode.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>UsergridAuthMode Enum Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Enum/UsergridAuthMode" class="dashAnchor"></a>
+    <a title="UsergridAuthMode Enum Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        UsergridAuthMode Enum Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>UsergridAuthMode</h1>
+              <div class="declaration">
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthMode</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
+
+                </div>
+              </div>
+            <p>An enumeration that is used to determine what the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> will use for authorization.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK16UsergridAuthMode4NoneFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/None" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK16UsergridAuthMode4NoneFMS0_S0_">None</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">None</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK16UsergridAuthMode4UserFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/User" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK16UsergridAuthMode4UserFMS0_S0_">User</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>If a non-expired <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> exists in <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">UsergridClient.currentUser</a></code>, this token is used to authenticate all API calls.</p>
+
+<p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authMode=.None).</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">User</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK16UsergridAuthMode3AppFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/App" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK16UsergridAuthMode3AppFMS0_S0_">App</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>If a non-expired <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> exists in <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient7appAuthGSqCS_15UsergridAppAuth_">UsergridClient.appAuth</a></code>, this token is used to authenticate all API calls.</p>
+
+<p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authMode=.None).</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">App</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/Enums/UsergridDeviceProperties.html b/sdks/swift/docs/Enums/UsergridDeviceProperties.html
index da53073..a4736a3 100644
--- a/sdks/swift/docs/Enums/UsergridDeviceProperties.html
+++ b/sdks/swift/docs/Enums/UsergridDeviceProperties.html
@@ -14,12 +14,12 @@
     <a title="UsergridDeviceProperties Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridDeviceProperties Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -270,9 +278,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -351,7 +359,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridDirection.html b/sdks/swift/docs/Enums/UsergridDirection.html
index 8289bcb..d11978c 100644
--- a/sdks/swift/docs/Enums/UsergridDirection.html
+++ b/sdks/swift/docs/Enums/UsergridDirection.html
@@ -14,12 +14,12 @@
     <a title="UsergridDirection Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridDirection Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -268,7 +276,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridEntityProperties.html b/sdks/swift/docs/Enums/UsergridEntityProperties.html
index 809b5b1..b9b3278 100644
--- a/sdks/swift/docs/Enums/UsergridEntityProperties.html
+++ b/sdks/swift/docs/Enums/UsergridEntityProperties.html
@@ -14,12 +14,12 @@
     <a title="UsergridEntityProperties Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridEntityProperties Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -363,9 +371,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -442,9 +450,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFS0_FCS_14UsergridEntitySb"></a>
+                    <a name="/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFCS_14UsergridEntitySb"></a>
                     <a name="//apple_ref/swift/Method/isMutableForEntity(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFS0_FCS_14UsergridEntitySb">isMutableForEntity(_:)</a>
+                    <a class="token" href="#/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFCS_14UsergridEntitySb">isMutableForEntity(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -496,7 +504,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridHttpMethod.html b/sdks/swift/docs/Enums/UsergridHttpMethod.html
index 65718cd..1ad6cbb 100644
--- a/sdks/swift/docs/Enums/UsergridHttpMethod.html
+++ b/sdks/swift/docs/Enums/UsergridHttpMethod.html
@@ -14,12 +14,12 @@
     <a title="UsergridHttpMethod Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridHttpMethod Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -323,7 +331,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridImageContentType.html b/sdks/swift/docs/Enums/UsergridImageContentType.html
index 850b843..224450b 100644
--- a/sdks/swift/docs/Enums/UsergridImageContentType.html
+++ b/sdks/swift/docs/Enums/UsergridImageContentType.html
@@ -14,12 +14,12 @@
     <a title="UsergridImageContentType Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridImageContentType Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -268,7 +276,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridQueryOperator.html b/sdks/swift/docs/Enums/UsergridQueryOperator.html
index 1a7c201..fc07091 100644
--- a/sdks/swift/docs/Enums/UsergridQueryOperator.html
+++ b/sdks/swift/docs/Enums/UsergridQueryOperator.html
@@ -14,12 +14,12 @@
     <a title="UsergridQueryOperator Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridQueryOperator Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -332,9 +340,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -413,7 +421,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridQuerySortOrder.html b/sdks/swift/docs/Enums/UsergridQuerySortOrder.html
index a79f9c6..3758d3f 100644
--- a/sdks/swift/docs/Enums/UsergridQuerySortOrder.html
+++ b/sdks/swift/docs/Enums/UsergridQuerySortOrder.html
@@ -14,12 +14,12 @@
     <a title="UsergridQuerySortOrder Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridQuerySortOrder Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -239,9 +247,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -320,7 +328,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Enums/UsergridUserProperties.html b/sdks/swift/docs/Enums/UsergridUserProperties.html
index 140d2e5..eff2cdc 100644
--- a/sdks/swift/docs/Enums/UsergridUserProperties.html
+++ b/sdks/swift/docs/Enums/UsergridUserProperties.html
@@ -14,12 +14,12 @@
     <a title="UsergridUserProperties Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html">UsergridSDK Reference</a>
+        <a href="../index.html"> Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridUserProperties Enum Reference
       </p>
@@ -92,7 +92,7 @@
             <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -121,6 +121,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -425,9 +433,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -506,7 +514,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Extensions.html b/sdks/swift/docs/Extensions.html
index e293ef7..a5c3fb5 100644
--- a/sdks/swift/docs/Extensions.html
+++ b/sdks/swift/docs/Extensions.html
@@ -7,12 +7,13 @@
     <meta charset='utf-8'>
     <script src="js/jquery.min.js" defer></script>
     <script src="js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a title="Extensions  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html"> Docs</a> (88% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -26,7 +27,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="Classes.html">Classes</a>
+            <a href="Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Classes/Usergrid.html">Usergrid</a>
@@ -38,6 +39,9 @@
                 <a href="Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -47,6 +51,9 @@
                 <a href="Classes/UsergridClientConfig.html">UsergridClientConfig</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridEntity.html">UsergridEntity</a>
               </li>
               <li class="nav-group-task">
@@ -56,9 +63,15 @@
                 <a href="Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -67,15 +80,32 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Enums.html">Enums</a>
+            <a href="Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridDirection.html">UsergridDirection</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -90,15 +120,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Extensions.html">Extensions</a>
+            <a href="Extensions.html">Extensions</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Extensions/UsergridClient.html">UsergridClient</a>
+                <a href="Extensions/NSDate.html">NSDate</a>
               </li>
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Typealiases.html">Typealiases</a>
+            <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -118,6 +148,12 @@
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -135,9 +171,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:C11UsergridSDK14UsergridClient"></a>
-                    <a name="//apple_ref/swift/Extension/UsergridClient" class="dashAnchor"></a>
-                    <a class="token" href="#/s:C11UsergridSDK14UsergridClient">UsergridClient</a>
+                    <a name="/c:objc(cs)NSDate"></a>
+                    <a name="//apple_ref/swift/Extension/NSDate" class="dashAnchor"></a>
+                    <a class="token" href="#/c:objc(cs)NSDate">NSDate</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -145,17 +181,9 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridClient</code> class is the base handler for making client connections to and managing relationships with Usergrid&rsquo;s API.</p>
+                        <p>Undocumented</p>
 
-                        <a href="Extensions/UsergridClient.html" class="slightly-smaller">See more</a>
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClient</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
-
-                        </div>
+                        <a href="Extensions/NSDate.html" class="slightly-smaller">See more</a>
                       </div>
                     </section>
                   </div>
@@ -165,8 +193,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-10-21)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/Extensions/NSDate.html b/sdks/swift/docs/Extensions/NSDate.html
new file mode 100644
index 0000000..e69c6e3
--- /dev/null
+++ b/sdks/swift/docs/Extensions/NSDate.html
@@ -0,0 +1,448 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>NSDate Extension Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Extension/NSDate" class="dashAnchor"></a>
+    <a title="NSDate Extension Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        NSDate Extension Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>NSDate</h1>
+            <p>Undocumented</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FE11UsergridSDKCSo6NSDatecFT12millisecondsSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(milliseconds:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FE11UsergridSDKCSo6NSDatecFT12millisecondsSS_S0_">init(milliseconds:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Creates a new <code><a href="../Extensions/NSDate.html">NSDate</a></code> object with the given milliseconds.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">milliseconds</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>milliseconds</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>the milliseconds</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new <code><a href="../Extensions/NSDate.html">NSDate</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FE11UsergridSDKCSo6NSDate18dateAsMillisecondsFT_Si"></a>
+                    <a name="//apple_ref/swift/Method/dateAsMilliseconds()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FE11UsergridSDKCSo6NSDate18dateAsMillisecondsFT_Si">dateAsMilliseconds()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to milliseconds.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">dateAsMilliseconds</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The number of milliseconds corresponding to the date.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FE11UsergridSDKCSo6NSDate24dateAsMillisecondsStringFT_SS"></a>
+                    <a name="//apple_ref/swift/Method/dateAsMillisecondsString()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FE11UsergridSDKCSo6NSDate24dateAsMillisecondsStringFT_SS">dateAsMillisecondsString()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to milliseconds and returns the value as a string.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">dateAsMillisecondsString</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The number of milliseconds corresponding to the date as a string.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate22stringFromMillesecondsFSiSS"></a>
+                    <a name="//apple_ref/swift/Method/stringFromMilleseconds(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate22stringFromMillesecondsFSiSS">stringFromMilleseconds(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the number of milliseconds to a string.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">stringFromMilleseconds</span><span class="p">(</span><span class="nv">milliseconds</span><span class="p">:</span><span class="kt">Int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>milliseconds</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>the milliseconds to convert</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The milliseconds as a string.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate19unixTimeStampStringFT_SS"></a>
+                    <a name="//apple_ref/swift/Method/unixTimeStampString()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate19unixTimeStampStringFT_SS">unixTimeStampString()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to the corresponding UNIX time stamp as a string.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">unixTimeStampString</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The UNIX time stamp as a string.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate13unixTimeStampFT_Si"></a>
+                    <a name="//apple_ref/swift/Method/unixTimeStamp()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate13unixTimeStampFT_Si">unixTimeStamp()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to the corresponding UNIX time stamp.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">unixTimeStamp</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The UNIX time stamp.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate17nowAsMillisecondsFT_Si"></a>
+                    <a name="//apple_ref/swift/Method/nowAsMilliseconds()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate17nowAsMillisecondsFT_Si">nowAsMilliseconds()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the current date to milliseconds.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">nowAsMilliseconds</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The milliseconds of the current date.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/Global Variables.html b/sdks/swift/docs/Global Variables.html
index 3b39019..2685313 100644
--- a/sdks/swift/docs/Global Variables.html
+++ b/sdks/swift/docs/Global Variables.html
@@ -13,12 +13,12 @@
     <a title="Global Variables  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="index.html">UsergridSDK Reference</a>
+        <a href="index.html"> Reference</a>
         <img id="carat" src="img/carat.png" />
         Global Variables  Reference
       </p>
@@ -91,7 +91,7 @@
             <a href="Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -120,6 +120,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -180,7 +188,7 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">UsergridSDKVersion</span> <span class="o">=</span> <span class="s">"2.1.0"</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">UsergridSDKVersion</span> <span class="o">=</span> <span class="s">"2.1.1"</span></code></pre>
 
                         </div>
                       </div>
@@ -192,7 +200,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/Typealiases.html b/sdks/swift/docs/Typealiases.html
index ce55836..4a5b04a 100644
--- a/sdks/swift/docs/Typealiases.html
+++ b/sdks/swift/docs/Typealiases.html
@@ -13,12 +13,12 @@
     <a title="Typealiases  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="index.html">UsergridSDK Reference</a>
+        <a href="index.html"> Reference</a>
         <img id="carat" src="img/carat.png" />
         Typealiases  Reference
       </p>
@@ -91,7 +91,7 @@
             <a href="Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -120,6 +120,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -337,33 +345,6 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:11UsergridSDK31UsergridAssetDownloadCompletion"></a>
-                    <a name="//apple_ref/swift/Alias/UsergridAssetDownloadCompletion" class="dashAnchor"></a>
-                    <a class="token" href="#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>The completion block used in <code><a href="Classes/UsergridAsset.html">UsergridAsset</a></code> are finished downloading.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="language">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetDownloadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
-
-                        </div>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
                     <a name="/s:11UsergridSDK29UsergridAssetUploadCompletion"></a>
                     <a name="//apple_ref/swift/Alias/UsergridAssetUploadCompletion" class="dashAnchor"></a>
                     <a class="token" href="#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
@@ -381,7 +362,34 @@
                         <h4>Declaration</h4>
                         <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetUploadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="nv">response</span><span class="p">:</span><span class="kt">UsergridResponse</span><span class="p">,</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetUploadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">response</span><span class="p">:</span> <span class="kt">UsergridResponse</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:11UsergridSDK31UsergridAssetDownloadCompletion"></a>
+                    <a name="//apple_ref/swift/Alias/UsergridAssetDownloadCompletion" class="dashAnchor"></a>
+                    <a class="token" href="#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The completion block used in <code><a href="Classes/UsergridAsset.html">UsergridAsset</a></code> are finished downloading.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetDownloadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
 
                         </div>
                       </div>
@@ -393,7 +401,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes.html
index c14fb69..c6b6e22 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes.html
@@ -7,12 +7,13 @@
     <meta charset='utf-8'>
     <script src="js/jquery.min.js" defer></script>
     <script src="js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a title="Classes  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html"> Docs</a> (97% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -26,7 +27,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="Classes.html">Classes</a>
+            <a href="Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Classes/Usergrid.html">Usergrid</a>
@@ -38,6 +39,9 @@
                 <a href="Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -59,9 +63,15 @@
                 <a href="Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -70,10 +80,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Enums.html">Enums</a>
+            <a href="Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -85,6 +103,9 @@
                 <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -99,7 +120,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Typealiases.html">Typealiases</a>
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -119,6 +148,12 @@
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -136,6 +171,100 @@
                 <li class="item">
                   <div>
                     <code>
+                    <a name="/s:C11UsergridSDK21UsergridResponseError"></a>
+                    <a name="//apple_ref/swift/Class/UsergridResponseError" class="dashAnchor"></a>
+                    <a class="token" href="#/s:C11UsergridSDK21UsergridResponseError">UsergridResponseError</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A standard error object that contains details about a request failure.</p>
+
+                        <a href="Classes/UsergridResponseError.html" class="slightly-smaller">See more</a>
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridResponseError</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:C11UsergridSDK15UsergridRequest"></a>
+                    <a name="//apple_ref/swift/Class/UsergridRequest" class="dashAnchor"></a>
+                    <a class="token" href="#/s:C11UsergridSDK15UsergridRequest">UsergridRequest</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The UsergridRequest class incapsulates the properties that all requests made by the SDK have in common.  </p>
+
+<p>This class is also functions to create <code>NSURLRequest</code> objects based on the properties of the class.</p>
+
+                        <a href="Classes/UsergridRequest.html" class="slightly-smaller">See more</a>
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridRequest</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:C11UsergridSDK26UsergridAssetUploadRequest"></a>
+                    <a name="//apple_ref/swift/Class/UsergridAssetUploadRequest" class="dashAnchor"></a>
+                    <a class="token" href="#/s:C11UsergridSDK26UsergridAssetUploadRequest">UsergridAssetUploadRequest</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The <code><a href="Classes/UsergridRequest.html">UsergridRequest</a></code> sub class which is used for uploading assets.</p>
+
+                        <a href="Classes/UsergridAssetUploadRequest.html" class="slightly-smaller">See more</a>
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAssetUploadRequest</span><span class="p">:</span> <span class="kt">UsergridRequest</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
                     <a name="/s:C11UsergridSDK20UsergridClientConfig"></a>
                     <a name="//apple_ref/swift/Class/UsergridClientConfig" class="dashAnchor"></a>
                     <a class="token" href="#/s:C11UsergridSDK20UsergridClientConfig">UsergridClientConfig</a>
@@ -146,17 +275,17 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridClientConfig</code> is used when initializing <code>UsergridClient</code> objects.</p>
+                        <p><code>UsergridClientConfig</code> is used when initializing <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> objects.</p>
 
-<p>The <code>UsergridClientConfig</code> is meant for further customization of <code>UsergridClient</code> objects when needed.</p>
+<p>The <code>UsergridClientConfig</code> is meant for further customization of <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> objects when needed.</p>
 
                         <a href="Classes/UsergridClientConfig.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClientConfig</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClientConfig</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                         </div>
                       </div>
@@ -180,15 +309,15 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The base class for <code>UsergridAppAuth</code> and <code>UsergridUserAuth</code> classes.</p>
+                        <p>The <code>UsergridAuth</code> class functions to create and store authentication information used by Usergrid.</p>
 
-<p>This class should never be initialized on its own.  The use of the <code>UsergridAppAuth</code> and <code>UsergridUserAuth</code> subclasses should be used.</p>
+<p>The <code>UsergridAuth</code> sub classes, <code><a href="Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> and <code><a href="Classes/UsergridUserAuth.html">UsergridUserAuth</a></code>, provide different ways for authentication to be used in creating requests for access tokens through the SDK.</p>
 
                         <a href="Classes/UsergridAuth.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAuth</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
@@ -210,13 +339,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridAuth</code> subclass used for user level authorization.</p>
+                        <p>The <code><a href="Classes/UsergridAuth.html">UsergridAuth</a></code> subclass used for user level authorization.</p>
 
                         <a href="Classes/UsergridUserAuth.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridUserAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
 
@@ -238,13 +367,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridAuth</code> subclass used for application level authorization.</p>
+                        <p>The <code><a href="Classes/UsergridAuth.html">UsergridAuth</a></code> subclass used for application level authorization.</p>
 
                         <a href="Classes/UsergridAppAuth.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAppAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
 
@@ -270,15 +399,15 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridFileMetaData</code> is a helper class for dealing with reading <code>UsergridEntity</code> file meta data.</p>
+                        <p><code>UsergridFileMetaData</code> is a helper class for dealing with reading <code><a href="Classes/UsergridEntity.html">UsergridEntity</a></code> file meta data.</p>
 
                         <a href="Classes/UsergridFileMetaData.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridFileMetaData</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridFileMetaData</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span><span class="kt">NSCoding</span></code></pre>
 
                         </div>
                       </div>
@@ -302,7 +431,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridDevice</code> is an <code>UsergridEntity</code> subclass that encapsulates information about the current device as well as stores information about push tokens and Usergrid notifiers.</p>
+                        <p><code>UsergridDevice</code> is an <code><a href="Classes/UsergridEntity.html">UsergridEntity</a></code> subclass that encapsulates information about the current device as well as stores information about push tokens and Usergrid notifiers.</p>
 
 <p>To apply push tokens for Usergrid notifiers use the <code>UsergridClient.applyPushToken</code> method.</p>
 
@@ -310,7 +439,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridDevice</span> <span class="p">:</span> <span class="kt">UsergridEntity</span></code></pre>
 
@@ -338,13 +467,13 @@
                       <div class="abstract">
                         <p><code>UsergridQuery</code> is builder class used to construct filtered requests to Usergrid.</p>
 
-<p><code>UsergridQuery</code> objects are then passed to <code>UsergridClient</code> or <code>Usergrid</code> methods which support <code>UsergridQuery</code> as a parameter are .GET(), .PUT(), and .DELETE().</p>
+<p><code>UsergridQuery</code> objects are then passed to <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> or <code><a href="Classes/Usergrid.html">Usergrid</a></code> methods which support <code>UsergridQuery</code> as a parameter are .GET(), .PUT(), and .DELETE().</p>
 
                         <a href="Classes/UsergridQuery.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridQuery</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span><span class="kt">NSCopying</span></code></pre>
 
@@ -378,9 +507,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridEntity</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridEntity</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                         </div>
                       </div>
@@ -404,13 +533,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridUser</code> is a special subclass of <code>UsergridEntity</code> that supports functions and properties unique to users.</p>
+                        <p><code>UsergridUser</code> is a special subclass of <code><a href="Classes/UsergridEntity.html">UsergridEntity</a></code> that supports functions and properties unique to users.</p>
 
                         <a href="Classes/UsergridUser.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridUser</span> <span class="p">:</span> <span class="kt">UsergridEntity</span></code></pre>
 
@@ -436,18 +565,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>Usergrid</code> class acts as a static shared instance manager for the <code>UsergridClient</code> class.</p>
+                        <p>The <code>Usergrid</code> class acts as a static shared instance manager for the <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> class.</p>
 
 <p>The methods and variables in this class are all static and therefore you will never need or want to initialize an instance of the <code>Usergrid</code> class.</p>
 
-<p>Use of this class depends on initialization of the shared instance of the <code>UsergridClient</code> object.  Because of this, before using any of the static methods
+<p>Use of this class depends on initialization of the shared instance of the <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> object.  Because of this, before using any of the static methods
 provided you will need to call one of the shared instance initialization methods.  Failure to do so will result in failure from all methods.</p>
 
                         <a href="Classes/Usergrid.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Usergrid</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
 
@@ -475,15 +604,15 @@
                       <div class="abstract">
                         <p><code>UsergridResponse</code> is the core class that handles both successful and unsuccessful HTTP responses from Usergrid. </p>
 
-<p>If a request is successful, any entities returned in the response will be automatically parsed into <code>UsergridEntity</code> objects and pushed to the <code>entities</code> property.</p>
+<p>If a request is successful, any entities returned in the response will be automatically parsed into <code><a href="Classes/UsergridEntity.html">UsergridEntity</a></code> objects and pushed to the <code>entities</code> property.</p>
 
-<p>If a request fails, the <code>errorName</code> and <code>errorDescription</code> will contain information about the problem encountered.</p>
+<p>If a request fails, the <code>UsergridResponseError.error</code> property will contain information about the problem encountered.</p>
 
                         <a href="Classes/UsergridResponse.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridResponse</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
 
@@ -509,7 +638,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>As Usergrid supports storing binary assets, the SDKs are designed to make uploading assets easier and more robust. Attaching, uploading, and downloading assets is handled by the <code>UsergridEntity</code> class.</p>
+                        <p>As Usergrid supports storing binary assets, the SDKs are designed to make uploading assets easier and more robust. Attaching, uploading, and downloading assets is handled by the <code><a href="Classes/UsergridEntity.html">UsergridEntity</a></code> class.</p>
 
 <p>Unless defined, whenever possible, the content-type will be inferred from the data provided, and the attached file (if not already a byte-array representation) will be binary-encoded.</p>
 
@@ -517,9 +646,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAsset</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAsset</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                         </div>
                       </div>
@@ -549,9 +678,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClient</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClient</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                         </div>
                       </div>
@@ -563,8 +692,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/Usergrid.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/Usergrid.html
index b5a8cba..61bf26f 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/Usergrid.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/Usergrid.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/Usergrid" class="dashAnchor"></a>
     <a title="Usergrid Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,28 +164,28 @@
           <section class="section">
             <h1>Usergrid</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Usergrid</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
 
                 </div>
               </div>
-            <p>The <code>Usergrid</code> class acts as a static shared instance manager for the <code>UsergridClient</code> class.</p>
+            <p>The <code>Usergrid</code> class acts as a static shared instance manager for the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> class.</p>
 
 <p>The methods and variables in this class are all static and therefore you will never need or want to initialize an instance of the <code>Usergrid</code> class.</p>
 
-<p>Use of this class depends on initialization of the shared instance of the <code>UsergridClient</code> object.  Because of this, before using any of the static methods
+<p>Use of this class depends on initialization of the shared instance of the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> object.  Because of this, before using any of the static methods
 provided you will need to call one of the shared instance initialization methods.  Failure to do so will result in failure from all methods.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Static%20Variables"></a>
-                  <a name="//apple_ref/swift/Section/Static Variables" class="dashAnchor"></a>
-                  <a href="#/Static%20Variables">
-                    <h3 class="section-name">Static Variables</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Static%20Variables"></a>
+                <a name="//apple_ref/swift/Section/Static Variables" class="dashAnchor"></a>
+                <a href="#/Static%20Variables">
+                  <h3 class="section-name">Static Variables</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -165,12 +200,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Used to determine if the shared instance of the <code>UsergridClient</code> has been initialized.</p>
+                        <p>Used to determine if the shared instance of the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> has been initialized.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">isInitialized</span> <span class="p">:</span> <span class="kt">Bool</span>  <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">_sharedClient</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">}</span></code></pre>
 
@@ -192,13 +227,19 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>A shared instance of <code>UsergridClient</code>, used by the <code>Usergrid</code> static methods and acts as the default <code>UsergridClient</code>
+                        <p>A shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>, used by the <code><a href="../Classes/Usergrid.html">Usergrid</a></code> static methods and acts as the default <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>
 within the UsergridSDK library.</p>
 
+<div class="aside aside-warning">
+    <p class="aside-title">Warning</p>
+    You must call one of the <code>Usergrid.initSharedInstance</code> methods before this or any other <code><a href="../Classes/Usergrid.html">Usergrid</a></code> static methods are valid.
+
+</div>
+
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">sharedInstance</span> <span class="p">:</span> <span class="kt">UsergridClient</span></code></pre>
 
@@ -210,9 +251,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZvC11UsergridSDK8Usergrid5appIDSS"></a>
-                    <a name="//apple_ref/swift/Variable/appID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid5appIDSS">appID</a>
+                    <a name="/s:ZvC11UsergridSDK8Usergrid5appIdSS"></a>
+                    <a name="//apple_ref/swift/Variable/appId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid5appIdSS">appId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -220,14 +261,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The application identifier the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The application identifier the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">appID</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">appID</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">appId</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">appId</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -237,9 +278,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZvC11UsergridSDK8Usergrid5orgIDSS"></a>
-                    <a name="//apple_ref/swift/Variable/orgID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid5orgIDSS">orgID</a>
+                    <a name="/s:ZvC11UsergridSDK8Usergrid5orgIdSS"></a>
+                    <a name="//apple_ref/swift/Variable/orgId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid5orgIdSS">orgId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -247,14 +288,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The organization identifier of the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The organization identifier of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">orgID</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">orgID</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">orgId</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">orgId</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -264,9 +305,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZvC11UsergridSDK8Usergrid7baseURLSS"></a>
-                    <a name="//apple_ref/swift/Variable/baseURL" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid7baseURLSS">baseURL</a>
+                    <a name="/s:ZvC11UsergridSDK8Usergrid7baseUrlSS"></a>
+                    <a name="//apple_ref/swift/Variable/baseUrl" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid7baseUrlSS">baseUrl</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -274,14 +315,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The base URL that all calls will be made with of the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The base URL that all calls will be made with of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">baseURL</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">baseURL</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">baseUrl</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">baseUrl</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -301,12 +342,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The constructed URL string based on the <code>UsergridClient</code>&rsquo;s baseURL, orgID, and appID of the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The constructed URL string based on the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>&rsquo;s baseUrl, orgId, and appId of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">clientAppURL</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">clientAppURL</span> <span class="p">}</span></code></pre>
 
@@ -328,12 +369,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The currently logged in <code>UsergridUser</code> of the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The currently logged in <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">currentUser</span><span class="p">:</span> <span class="kt">UsergridUser</span><span class="p">?</span>  <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">currentUser</span> <span class="p">}</span></code></pre>
 
@@ -345,6 +386,33 @@
                 <li class="item">
                   <div>
                     <code>
+                    <a name="/s:ZvC11UsergridSDK8Usergrid28persistCurrentUserInKeychainSb"></a>
+                    <a name="//apple_ref/swift/Variable/persistCurrentUserInKeychain" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid28persistCurrentUserInKeychainSb">persistCurrentUserInKeychain</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Whether or not the current user will be saved and restored from the keychain using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">persistCurrentUserInKeychain</span><span class="p">:</span> <span class="kt">Bool</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
                     <a name="/s:ZvC11UsergridSDK8Usergrid8userAuthGSqCS_16UsergridUserAuth_"></a>
                     <a name="//apple_ref/swift/Variable/userAuth" class="dashAnchor"></a>
                     <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid8userAuthGSqCS_16UsergridUserAuth_">userAuth</a>
@@ -355,12 +423,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridUserAuth</code> which consists of the token information from the <code>currentUser</code> property of the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> which consists of the token information from the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid11currentUserGSqCS_12UsergridUser_">currentUser</a></code> property of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">userAuth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">?</span>  <span class="p">{</span> <span class="k">return</span> <span class="kt">Usergrid</span><span class="o">.</span><span class="n">sharedInstance</span><span class="o">.</span><span class="n">userAuth</span> <span class="p">}</span></code></pre>
 
@@ -382,12 +450,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The application level <code>UsergridAppAuth</code> object of the shared instance of <code>UsergridClient</code>.</p>
+                        <p>The application level <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> object of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">appAuth</span><span class="p">:</span> <span class="kt">UsergridAppAuth</span><span class="p">?</span></code></pre>
 
@@ -396,23 +464,50 @@
                     </section>
                   </div>
                 </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZvC11UsergridSDK8Usergrid8authModeOS_16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Variable/authMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid8authModeOS_16UsergridAuthMode">authMode</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The <code><a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a></code> value used to determine what type of token will be sent of the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>, if any.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">authMode</span><span class="p">:</span> <span class="kt">UsergridAuthMode</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIDSS5appIDSS_CS_14UsergridClient"></a>
-                    <a name="//apple_ref/swift/Method/initSharedInstance(orgID:appID:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIDSS5appIDSS_CS_14UsergridClient">initSharedInstance(orgID:appID:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS_CS_14UsergridClient"></a>
+                    <a name="//apple_ref/swift/Method/initSharedInstance(orgId:appId:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS_CS_14UsergridClient">initSharedInstance(orgId:appId:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -420,14 +515,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Initializes the <code>Usergrid.sharedInstance</code> of <code>UsergridClient</code>.</p>
+                        <p>Initializes the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid14sharedInstanceCS_14UsergridClient">Usergrid.sharedInstance</a></code> of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">initSharedInstance</span><span class="p">(</span><span class="n">orgID</span> <span class="nv">orgID</span> <span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">initSharedInstance</span><span class="p">(</span><span class="n">orgId</span> <span class="nv">orgId</span> <span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
 
                         </div>
                       </div>
@@ -438,7 +533,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -451,7 +546,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -466,7 +561,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The shared instance of <code>UsergridClient</code>.</p>
+                        <p>The shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                     </section>
@@ -475,9 +570,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIDSS5appIDSS7baseURLSS_CS_14UsergridClient"></a>
-                    <a name="//apple_ref/swift/Method/initSharedInstance(orgID:appID:baseURL:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT5orgIDSS5appIDSS7baseURLSS_CS_14UsergridClient">initSharedInstance(orgID:appID:baseURL:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS7baseUrlSS_CS_14UsergridClient"></a>
+                    <a name="//apple_ref/swift/Method/initSharedInstance(orgId:appId:baseUrl:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT5orgIdSS5appIdSS7baseUrlSS_CS_14UsergridClient">initSharedInstance(orgId:appId:baseUrl:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -485,14 +580,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Initializes the <code>Usergrid.sharedInstance</code> of <code>UsergridClient</code>.</p>
+                        <p>Initializes the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid14sharedInstanceCS_14UsergridClient">Usergrid.sharedInstance</a></code> of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">initSharedInstance</span><span class="p">(</span><span class="n">orgID</span> <span class="nv">orgID</span> <span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseURL</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">initSharedInstance</span><span class="p">(</span><span class="n">orgId</span> <span class="nv">orgId</span> <span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseUrl</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
 
                         </div>
                       </div>
@@ -503,7 +598,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -516,7 +611,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -529,7 +624,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>baseURL</em>
+                                <em>baseUrl</em>
                                 </code>
                               </td>
                               <td>
@@ -544,7 +639,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The shared instance of <code>UsergridClient</code>.</p>
+                        <p>The shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                     </section>
@@ -553,9 +648,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT13configurationCS_20UsergridClientConfig_CS_14UsergridClient"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT13configurationCS_20UsergridClientConfig_CS_14UsergridClient"></a>
                     <a name="//apple_ref/swift/Method/initSharedInstance(configuration:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFMS0_FT13configurationCS_20UsergridClientConfig_CS_14UsergridClient">initSharedInstance(configuration:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid18initSharedInstanceFT13configurationCS_20UsergridClientConfig_CS_14UsergridClient">initSharedInstance(configuration:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -563,12 +658,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Initializes the <code>Usergrid.sharedInstance</code> of <code>UsergridClient</code>.</p>
+                        <p>Initializes the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid14sharedInstanceCS_14UsergridClient">Usergrid.sharedInstance</a></code> of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">initSharedInstance</span><span class="p">(</span><span class="n">configuration</span> <span class="nv">configuration</span><span class="p">:</span> <span class="kt">UsergridClientConfig</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
 
@@ -596,7 +691,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The shared instance of <code>UsergridClient</code>.</p>
+                        <p>The shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                     </section>
@@ -605,20 +700,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Push%20Notifications"></a>
-                  <a name="//apple_ref/swift/Section/Push Notifications" class="dashAnchor"></a>
-                  <a href="#/Push%20Notifications">
-                    <h3 class="section-name">Push Notifications</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Push%20Notifications"></a>
+                <a name="//apple_ref/swift/Section/Push Notifications" class="dashAnchor"></a>
+                <a href="#/Push%20Notifications">
+                  <h3 class="section-name">Push Notifications</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -626,12 +721,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the shared <code>UsergridDevice</code> instance using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the shared <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> instance using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">applyPushToken</span><span class="p">(</span><span class="nv">pushToken</span><span class="p">:</span> <span class="kt">NSData</span><span class="p">,</span> <span class="nv">notifierID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -689,9 +784,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:pushToken:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFMS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -699,12 +794,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the given <code>UsergridDevice</code> instance using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the given <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> instance using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">applyPushToken</span><span class="p">(</span><span class="nv">device</span><span class="p">:</span> <span class="kt">UsergridDevice</span><span class="p">,</span> <span class="nv">pushToken</span><span class="p">:</span> <span class="kt">NSData</span><span class="p">,</span> <span class="nv">notifierID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -775,20 +870,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Authorization"></a>
-                  <a name="//apple_ref/swift/Section/Authorization" class="dashAnchor"></a>
-                  <a href="#/Authorization">
-                    <h3 class="section-name">Authorization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Authorization"></a>
+                <a name="//apple_ref/swift/Section/Authorization" class="dashAnchor"></a>
+                <a href="#/Authorization">
+                  <h3 class="section-name">Authorization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZvC11UsergridSDK8Usergrid12authFallbackOS_20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Variable/authFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZvC11UsergridSDK8Usergrid12authFallbackOS_20UsergridAuthFallback">authFallback</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid9usingAuthFCS_12UsergridAuthCS_14UsergridClient"></a>
+                    <a name="//apple_ref/swift/Method/usingAuth(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid9usingAuthFCS_12UsergridAuthCS_14UsergridClient">usingAuth(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -796,26 +891,53 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridAuthFallback</code> value used to determine what type of token will be sent of the shared instance of <code>UsergridClient</code>, if any.</p>
+                        <p>Sets the shared <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>&rsquo;s <code>tempAuth</code> property using the passed in <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code>.</p>
+
+<p>This will cause the next CRUD method performed by the client to use the <code>tempAuth</code> property once and will then reset.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">authFallback</span><span class="p">:</span> <span class="kt">UsergridAuthFallback</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">usingAuth</span><span class="p">(</span><span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridAuth</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>auth</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridAuth</code> object to temporarily use for authentication.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code></p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid15authForRequestsFMS0_FT_GSqCS_12UsergridAuth_"></a>
-                    <a name="//apple_ref/swift/Method/authForRequests()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authForRequestsFMS0_FT_GSqCS_12UsergridAuth_">authForRequests()</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10usingTokenFSSCS_14UsergridClient"></a>
+                    <a name="//apple_ref/swift/Method/usingToken(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10usingTokenFSSCS_14UsergridClient">usingToken(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -823,16 +945,70 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Determines the <code>UsergridAuth</code> object that will be used for all outgoing requests made by the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Sets the shared <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>&rsquo;s <code>tempAuth</code> property using the passed in token.</p>
 
-<p>If there is a <code>UsergridUser</code> logged in and the token of that user is valid then it will return that.</p>
-
-<p>Otherwise, if the <code>authFallback</code> is <code>.App</code>, and the <code>UsergridAppAuth</code> of the client is set and the token is valid it will return that.</p>
+<p>This will cause the next CRUD method performed by the client to use the <code>tempAuth</code> property once and will then reset.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">usingToken</span><span class="p">(</span><span class="nv">token</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridClient</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>auth</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The access token to temporarily use for authentication.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid15authForRequestsFT_GSqCS_12UsergridAuth_"></a>
+                    <a name="//apple_ref/swift/Method/authForRequests()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authForRequestsFT_GSqCS_12UsergridAuth_">authForRequests()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Determines the <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> object that will be used for all outgoing requests made by the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+<p>If there is a <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> logged in and the token of that user is valid then it will return that.</p>
+
+<p>Otherwise, if the <code><a href="../Classes/Usergrid.html#/s:ZvC11UsergridSDK8Usergrid8authModeOS_16UsergridAuthMode">authMode</a></code> is <code>.App</code>, and the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> of the client is set and the token is valid it will return that.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">authForRequests</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">UsergridAuth</span><span class="p">?</span></code></pre>
 
@@ -840,7 +1016,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The <code>UsergridAuth</code> if one is found or nil if not.</p>
+                        <p>The <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> if one is found or nil if not.</p>
 
                       </div>
                     </section>
@@ -849,9 +1025,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqSS__T___T_">authenticateApp(_:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -859,12 +1035,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridAppAuth</code> that is contained within the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> that is contained within the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">authenticateApp</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridAppAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -896,9 +1072,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFMS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqSS__T___T_">authenticateApp(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -906,12 +1082,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridAppAuth</code> that is passed in using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> that is passed in using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">authenticateApp</span><span class="p">(</span><span class="nv">auth</span><span class="p">:</span> <span class="kt">UsergridAppAuth</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridAppAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -956,9 +1132,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_">authenticateUser(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -966,12 +1142,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridUserAuth</code> that is passed in using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> that is passed in using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">authenticateUser</span><span class="p">(</span><span class="nv">auth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1016,9 +1192,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:setAsCurrentUser:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFMS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1026,12 +1202,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridUserAuth</code> that is passed in using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> that is passed in using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">authenticateUser</span><span class="p">(</span><span class="nv">userAuth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">,</span> <span class="nv">setAsCurrentUser</span><span class="p">:</span><span class="kt">Bool</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1089,9 +1265,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFMS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/logoutCurrentUser(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFMS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/resetPassword(_:old:new:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1099,12 +1275,98 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Logs out the current user of the shared instance locally and remotely.</p>
+                        <p>Changes the given <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>&rsquo;s current password with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">resetPassword</span><span class="p">(</span><span class="nv">user</span><span class="p">:</span> <span class="kt">UsergridUser</span><span class="p">,</span> <span class="nv">old</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">new</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserResetPasswordCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>user</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The user.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>old</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The old password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>new</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The new password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/logoutCurrentUser(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Logs out the current user of the shared instance locally and remotely using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">logoutCurrentUser</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1136,9 +1398,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFMS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUserAllTokens(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFMS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1151,7 +1413,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">logoutUserAllTokens</span><span class="p">(</span><span class="nv">uuidOrUsername</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1183,9 +1445,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10logoutUserFMS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUser(_:token:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10logoutUserFMS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1200,7 +1462,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">logoutUser</span><span class="p">(</span><span class="nv">uuidOrUsername</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">token</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1232,20 +1494,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/GET"></a>
-                  <a name="//apple_ref/swift/Section/GET" class="dashAnchor"></a>
-                  <a href="#/GET">
-                    <h3 class="section-name">GET</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Generic%20Request%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Generic Request Methods" class="dashAnchor"></a>
+                <a href="#/Generic%20Request%20Methods">
+                  <h3 class="section-name">Generic Request Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/GET(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/sendRequest(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_">sendRequest(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1253,12 +1515,89 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets a single <code>UsergridEntity</code> of a given type with a specific UUID/name using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Starts the <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code> sending process using the shared instance of <code>UsergridCient</code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>This method should only be used when you construct your own `UsergridRequest objects.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">sendRequest</span><span class="p">(</span><span class="nv">request</span><span class="p">:</span><span class="kt">UsergridRequest</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>request</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridRequest</code> object to send.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/GET"></a>
+                <a name="//apple_ref/swift/Section/GET" class="dashAnchor"></a>
+                <a href="#/GET">
+                  <h3 class="section-name">GET</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/GET(_:uuidOrName:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets a single <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of a given type with a specific UUID/name using the shared instance of <code>UsergridCient</code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1316,9 +1655,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/GET(_:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFMS0_FTSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:query:completion:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/GET(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1326,14 +1665,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets a group of <code>UsergridEntity</code> objects of a given type with an optional query using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Gets a group of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects of a given type  using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -1357,12 +1696,59 @@
                             <tr>
                               <td>
                                 <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/GET(_:queryCompletion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:queryCompletion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets a group of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects with a given query using the shared instance of <code>UsergridCient</code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">,</span> <span class="nv">queryCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
                                 <em>query</em>
                                 </code>
                               </td>
                               <td>
                                 <div>
-                                  <p>The optional query to use when gathering <code>UsergridEntity</code> objects.</p>
+                                  <p>The query to use when gathering <code>UsergridEntity</code> objects.</p>
 
                                 </div>
                               </td>
@@ -1370,7 +1756,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>completion</em>
+                                <em>queryCompletion</em>
                                 </code>
                               </td>
                               <td>
@@ -1389,20 +1775,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/PUT"></a>
-                  <a name="//apple_ref/swift/Section/PUT" class="dashAnchor"></a>
-                  <a href="#/PUT">
-                    <h3 class="section-name">PUT</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/PUT"></a>
+                <a name="//apple_ref/swift/Section/PUT" class="dashAnchor"></a>
+                <a href="#/PUT">
+                  <h3 class="section-name">PUT</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:uuidOrName:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1410,12 +1796,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Updates an <code>UsergridEntity</code> with the given type and UUID/name specified using the passed in jsonBody using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Updates an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> with the given type and UUID/name specified using the passed in jsonBody using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1486,9 +1872,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1496,12 +1882,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Updates an <code>UsergridEntity</code> with the given type using the jsonBody where the UUID/name is specified inside of the jsonBody using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Updates an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> with the given type using the jsonBody where the UUID/name is specified inside of the jsonBody using the shared instance of <code>UsergridCient</code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The <code>jsonBody</code> must contain a valid value for either <code>uuid</code> or <code>name</code>.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1559,9 +1951,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1569,12 +1961,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Updates the passed in <code>UsergridEntity</code> using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Updates the passed in <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1619,9 +2011,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFMS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1631,10 +2023,16 @@
                       <div class="abstract">
                         <p>Updates the entities that fit the given query using the passed in jsonBody using the shared instance of <code>UsergridCient</code>.</p>
 
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The query parameter must have a valid <code>collectionName</code> before calling this method.</p>
+
+</div>
+
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">queryCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1692,20 +2090,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/POST"></a>
-                  <a name="//apple_ref/swift/Section/POST" class="dashAnchor"></a>
-                  <a href="#/POST">
-                    <h3 class="section-name">POST</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/POST"></a>
+                <a name="//apple_ref/swift/Section/POST" class="dashAnchor"></a>
+                <a href="#/POST">
+                  <h3 class="section-name">POST</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:name:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1713,12 +2111,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts an <code>UsergridEntity</code> of the given type with a given name and the given jsonBody using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Creates and posts an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of the given type with a given name and the given jsonBody using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1789,9 +2187,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1799,12 +2197,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts an <code>UsergridEntity</code> of the given type with the given jsonBody using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Creates and posts an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of the given type with the given jsonBody using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1862,9 +2260,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBodies:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1877,7 +2275,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBodies</span><span class="p">:[[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1935,9 +2333,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1945,12 +2343,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts creates an <code>UsergridEntity</code> using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Creates and posts creates an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1995,9 +2393,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:entitiesCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFMS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2005,12 +2403,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts an array of <code>UsergridEntity</code> objects using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Creates and posts an array of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects using the shared instance of <code>UsergridCient</code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>Each <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> in the array much already have a type assigned and must be the same.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">entities</span><span class="p">:[</span><span class="kt">UsergridEntity</span><span class="p">],</span> <span class="nv">entitiesCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2055,20 +2459,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/DELETE"></a>
-                  <a name="//apple_ref/swift/Section/DELETE" class="dashAnchor"></a>
-                  <a href="#/DELETE">
-                    <h3 class="section-name">DELETE</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/DELETE"></a>
+                <a name="//apple_ref/swift/Section/DELETE" class="dashAnchor"></a>
+                <a href="#/DELETE">
+                  <h3 class="section-name">DELETE</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2076,12 +2480,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Destroys the <code>UsergridEntity</code> of a given type with a specific UUID/name using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Destroys the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of a given type with a specific UUID/name using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">DELETE</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2139,9 +2543,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2149,12 +2553,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Destroys the passed <code>UsergridEntity</code> using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Destroys the passed <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code>UsergridCient</code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The entity object must have a <code>uuid</code> or <code>name</code> assigned.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">DELETE</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2199,9 +2609,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFMS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2209,12 +2619,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Destroys the <code>UsergridEntity</code> objects that fit the given <code>UsergridQuery</code> using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Destroys the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects that fit the given <code><a href="../Classes/UsergridQuery.html">UsergridQuery</a></code> using the shared instance of <code>UsergridCient</code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The query parameter must have a valid <code>collectionName</code> before calling this method.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="kt">DELETE</span><span class="p">(</span><span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">,</span> <span class="nv">queryCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2259,20 +2675,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Connection%20Management"></a>
-                  <a name="//apple_ref/swift/Section/Connection Management" class="dashAnchor"></a>
-                  <a href="#/Connection%20Management">
-                    <h3 class="section-name">Connection Management</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Connection%20Management"></a>
+                <a name="//apple_ref/swift/Section/Connection Management" class="dashAnchor"></a>
+                <a href="#/Connection%20Management">
+                  <h3 class="section-name">Connection Management</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:relationship:to:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2280,12 +2696,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Connects the <code>UsergridEntity</code> objects via the relationship using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Connects the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects via the relationship using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">to</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2356,9 +2772,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2371,7 +2787,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toType</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">toID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2468,9 +2884,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFMS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2483,7 +2899,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2580,9 +2996,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:relationship:from:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2590,12 +3006,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Disconnects the <code>UsergridEntity</code> objects via the relationship using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Disconnects the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects via the relationship using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">from</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2666,9 +3082,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2681,7 +3097,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromType</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">fromID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2778,9 +3194,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFMS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2793,7 +3209,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2890,9 +3306,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/getConnections(_:entity:relationship:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:completion:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:entity:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2905,9 +3321,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -2976,9 +3392,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection10entityTypeSS8entityIDSS12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/getConnections(_:entityType:entityID:relationship:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFMS0_FTOS_17UsergridDirection10entityTypeSS8entityIDSS12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entityType:entityID:relationship:completion:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:type:uuidOrName:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:type:uuidOrName:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2991,9 +3407,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -3017,7 +3433,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>entityType</em>
+                                <em>type</em>
                                 </code>
                               </td>
                               <td>
@@ -3030,7 +3446,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>entityID</em>
+                                <em>uuidOrName</em>
                                 </code>
                               </td>
                               <td>
@@ -3056,6 +3472,19 @@
                             <tr>
                               <td>
                                 <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
                                 <em>completion</em>
                                 </code>
                               </td>
@@ -3072,23 +3501,12 @@
                     </section>
                   </div>
                 </li>
-              </ul>
-            </div>
-            <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Asset%20Management"></a>
-                  <a name="//apple_ref/swift/Section/Asset Management" class="dashAnchor"></a>
-                  <a href="#/Asset%20Management">
-                    <h3 class="section-name">Asset Management</h3>
-                  </a>
-                </div>
-              <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid11uploadAssetFMS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_"></a>
-                    <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11uploadAssetFMS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:uuid:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:uuid:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3096,12 +3514,122 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Uploads the asset and connects the data to the given <code>UsergridEntity</code> using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Gets the connected entities for the given relationship using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">uuid</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>direction</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The direction of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>uuid</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity UUID.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>relationship</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The relationship of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Asset%20Management"></a>
+                <a name="//apple_ref/swift/Section/Asset Management" class="dashAnchor"></a>
+                <a href="#/Asset%20Management">
+                  <h3 class="section-name">Asset Management</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Uploads the asset and connects the data to the given <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code>UsergridCient</code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">uploadAsset</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetUploadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -3172,9 +3700,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK8Usergrid13downloadAssetFMS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:ZFC11UsergridSDK8Usergrid13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:contentType:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid13downloadAssetFMS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK8Usergrid13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3182,12 +3710,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Downloads the asset from the given <code>UsergridEntity</code> using the shared instance of <code>UsergridCient</code>.</p>
+                        <p>Downloads the asset from the given <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code>UsergridCient</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">downloadAsset</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetDownloadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -3260,8 +3788,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAppAuth.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAppAuth.html
index 579c1e1..70c940e 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAppAuth.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAppAuth.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridAppAuth" class="dashAnchor"></a>
     <a title="UsergridAppAuth Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,30 +164,30 @@
           <section class="section">
             <h1>UsergridAppAuth</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAppAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
 
                 </div>
               </div>
-            <p>The <code>UsergridAuth</code> subclass used for application level authorization.</p>
+            <p>The <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> subclass used for application level authorization.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK15UsergridAppAuth8clientIDSS"></a>
-                    <a name="//apple_ref/swift/Property/clientID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK15UsergridAppAuth8clientIDSS">clientID</a>
+                    <a name="/s:vC11UsergridSDK15UsergridAppAuth8clientIdSS"></a>
+                    <a name="//apple_ref/swift/Property/clientId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridAppAuth8clientIdSS">clientId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -165,9 +200,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">clientID</span><span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">clientId</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
                         </div>
                       </div>
@@ -177,20 +212,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT8clientIDSS12clientSecretSS_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(clientID:clientSecret:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT8clientIDSS12clientSecretSS_S0_">init(clientID:clientSecret:)</a>
+                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFT8clientIdSS12clientSecretSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(clientId:clientSecret:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFT8clientIdSS12clientSecretSS_S0_">init(clientId:clientSecret:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -198,14 +233,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridAppAuth</code> objects.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">clientID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">clientSecret</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">clientId</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">clientSecret</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -216,7 +251,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>clientID</em>
+                                <em>clientId</em>
                                 </code>
                               </td>
                               <td>
@@ -244,18 +279,29 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridAppAuth</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code>.</p>
 
                       </div>
                     </section>
                   </div>
                 </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridAppAuthcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuthcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -263,26 +309,51 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>NSCoding protocol initializer.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAppAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> object.</p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridAppAuth15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -290,17 +361,37 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>NSCoding protocol encoder.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAppAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
+                          <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
                     </section>
                   </div>
                 </li>
@@ -309,8 +400,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAsset.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAsset.html
index bf2b9f7..568d727 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAsset.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAsset.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridAsset" class="dashAnchor"></a>
     <a title="UsergridAsset Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,32 +164,32 @@
           <section class="section">
             <h1>UsergridAsset</h1>
               <div class="declaration">
-                <div class="Swift">
-                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAsset</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAsset</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                 </div>
               </div>
-            <p>As Usergrid supports storing binary assets, the SDKs are designed to make uploading assets easier and more robust. Attaching, uploading, and downloading assets is handled by the <code>UsergridEntity</code> class.</p>
+            <p>As Usergrid supports storing binary assets, the SDKs are designed to make uploading assets easier and more robust. Attaching, uploading, and downloading assets is handled by the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> class.</p>
 
 <p>Unless defined, whenever possible, the content-type will be inferred from the data provided, and the attached file (if not already a byte-array representation) will be binary-encoded.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK13UsergridAsset8fileNameSS"></a>
-                    <a name="//apple_ref/swift/Property/fileName" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK13UsergridAsset8fileNameSS">fileName</a>
+                    <a name="/s:vC11UsergridSDK13UsergridAsset8filenameSS"></a>
+                    <a name="//apple_ref/swift/Property/filename" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK13UsergridAsset8filenameSS">filename</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -167,9 +202,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">filename</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
                         </div>
                       </div>
@@ -179,9 +214,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK13UsergridAsset9assetDataCSo6NSData"></a>
-                    <a name="//apple_ref/swift/Property/assetData" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK13UsergridAsset9assetDataCSo6NSData">assetData</a>
+                    <a name="/s:vC11UsergridSDK13UsergridAsset4dataCSo6NSData"></a>
+                    <a name="//apple_ref/swift/Property/data" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK13UsergridAsset4dataCSo6NSData">data</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -189,14 +224,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Binary representation of asset data. If an image or image path was passed on initialization of the <code>UsergridAsset</code>.</p>
+                        <p>Binary representation of the asset&rsquo;s data.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">assetData</span><span class="p">:</span> <span class="kt">NSData</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">data</span><span class="p">:</span> <span class="kt">NSData</span></code></pre>
 
                         </div>
                       </div>
@@ -221,7 +256,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">originalLocation</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -248,7 +283,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">contentType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -275,9 +310,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">contentLength</span><span class="p">:</span> <span class="kt">Int</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="k">as</span><span class="n">setData</span><span class="o">.</span><span class="n">length</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">contentLength</span><span class="p">:</span> <span class="kt">Int</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">length</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -287,20 +322,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(fileName:data:originalLocation:contentType:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_">init(fileName:data:originalLocation:contentType:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(filename:data:originalLocation:contentType:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_4dataCSo6NSData16originalLocationGSqSS_11contentTypeSS_S0_">init(filename:data:originalLocation:contentType:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -308,14 +343,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridAsset</code> objects.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">data</span><span class="p">:</span><span class="kt">NSData</span><span class="p">,</span> <span class="nv">originalLocation</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">filename</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">data</span><span class="p">:</span><span class="kt">NSData</span><span class="p">,</span> <span class="nv">originalLocation</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -380,7 +415,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridAsset</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code>.</p>
 
                       </div>
                     </section>
@@ -389,9 +424,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__"></a>
-                    <a name="//apple_ref/swift/Method/init(fileName:image:imageContentType:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__">init(fileName:image:imageContentType:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(filename:image:imageContentType:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_5imageCSo7UIImage16imageContentTypeOS_24UsergridImageContentType_GSqS0__">init(filename:image:imageContentType:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -399,14 +434,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Convenience initializer for <code>UsergridAsset</code> objects dealing with image data.</p>
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> objects dealing with image data.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">fileName</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">image</span><span class="p">:</span><span class="kt">UIImage</span><span class="p">,</span> <span class="nv">imageContentType</span><span class="p">:</span><span class="kt">UsergridImageContentType</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Png</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">filename</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">image</span><span class="p">:</span><span class="kt">UIImage</span><span class="p">,</span> <span class="nv">imageContentType</span><span class="p">:</span><span class="kt">UsergridImageContentType</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Png</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -458,7 +493,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridAsset</code> if the data can be gathered from the passed in <code>UIImage</code>, otherwise nil.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> if the data can be gathered from the passed in <code>UIImage</code>, otherwise nil.</p>
 
                       </div>
                     </section>
@@ -467,9 +502,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__"></a>
-                    <a name="//apple_ref/swift/Method/init(fileName:fileURL:contentType:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFMS0_FT8fileNameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__">init(fileName:fileURL:contentType:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(filename:fileURL:contentType:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT8filenameGSqSS_7fileURLCSo5NSURL11contentTypeGSqSS__GSqS0__">init(filename:fileURL:contentType:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -477,14 +512,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Convenience initializer for <code>UsergridAsset</code> objects dealing directly with files on disk.</p>
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> objects dealing directly with files on disk.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="k">var</span> <span class="nv">fileName</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">fileURL</span><span class="p">:</span><span class="kt">NSURL</span><span class="p">,</span> <span class="k">var</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">filename</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="o">.</span><span class="kt">DEFAULT_FILE_NAME</span><span class="p">,</span> <span class="nv">fileURL</span><span class="p">:</span><span class="kt">NSURL</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -536,7 +571,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridAsset</code> if the data can be gathered from the passed in <code>NSURL</code>, otherwise nil.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> if the data can be gathered from the passed in <code>NSURL</code>, otherwise nil.</p>
 
                       </div>
                     </section>
@@ -544,11 +579,121 @@
                 </li>
               </ul>
             </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridAssetcFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAssetcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol initializer.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridAsset15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridAsset15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAssetUploadRequest.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAssetUploadRequest.html
new file mode 100644
index 0000000..f7a0b00
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAssetUploadRequest.html
@@ -0,0 +1,356 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>UsergridAssetUploadRequest Class Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Class/UsergridAssetUploadRequest" class="dashAnchor"></a>
+    <a title="UsergridAssetUploadRequest Class Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        UsergridAssetUploadRequest Class Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>UsergridAssetUploadRequest</h1>
+              <div class="declaration">
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAssetUploadRequest</span><span class="p">:</span> <span class="kt">UsergridRequest</span></code></pre>
+
+                </div>
+              </div>
+            <p>The <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code> sub class which is used for uploading assets.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK26UsergridAssetUploadRequest5assetCS_13UsergridAsset"></a>
+                    <a name="//apple_ref/swift/Property/asset" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK26UsergridAssetUploadRequest5assetCS_13UsergridAsset">asset</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The asset to use for uploading.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">asset</span><span class="p">:</span> <span class="kt">UsergridAsset</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK26UsergridAssetUploadRequest17multiPartHTTPBodyCSo6NSData"></a>
+                    <a name="//apple_ref/swift/Property/multiPartHTTPBody" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK26UsergridAssetUploadRequest17multiPartHTTPBodyCSo6NSData">multiPartHTTPBody</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A constructed multipart http body for requests to upload.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">multiPartHTTPBody</span><span class="p">:</span> <span class="kt">NSData</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK26UsergridAssetUploadRequestcFT7baseUrlSS5pathsGSqGSaSS__4authGSqCS_12UsergridAuth_5assetCS_13UsergridAsset_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(baseUrl:paths:auth:asset:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK26UsergridAssetUploadRequestcFT7baseUrlSS5pathsGSqGSaSS__4authGSqCS_12UsergridAuth_5assetCS_13UsergridAsset_S0_">init(baseUrl:paths:auth:asset:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The designated initializer for <code><a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span>
+                <span class="nv">paths</span><span class="p">:[</span><span class="kt">String</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+                <span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+                <span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>baseUrl</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The base URL.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>paths</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional paths to append to the base URL.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>auth</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional <code>UsergridAuth</code> that will be used in the Authorization header.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>asset</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The asset to upload.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAuth.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAuth.html
index 12ae462..8d1f6fd 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAuth.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridAuth.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridAuth" class="dashAnchor"></a>
     <a title="UsergridAuth Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,25 +164,25 @@
           <section class="section">
             <h1>UsergridAuth</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAuth</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                 </div>
               </div>
-            <p>The base class for <code>UsergridAppAuth</code> and <code>UsergridUserAuth</code> classes.</p>
+            <p>The <code>UsergridAuth</code> class functions to create and store authentication information used by Usergrid.</p>
 
-<p>This class should never be initialized on its own.  The use of the <code>UsergridAppAuth</code> and <code>UsergridUserAuth</code> subclasses should be used.</p>
+<p>The <code>UsergridAuth</code> sub classes, <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> and <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code>, provide different ways for authentication to be used in creating requests for access tokens through the SDK.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -162,12 +197,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The access token, if this <code>UsergridAuth</code> was authorized successfully.</p>
+                        <p>The access token, if this <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> was authorized successfully.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">accessToken</span> <span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -179,9 +214,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK12UsergridAuth9expiresInGSqSi_"></a>
-                    <a name="//apple_ref/swift/Property/expiresIn" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK12UsergridAuth9expiresInGSqSi_">expiresIn</a>
+                    <a name="/s:vC11UsergridSDK12UsergridAuth6expiryGSqCSo6NSDate_"></a>
+                    <a name="//apple_ref/swift/Property/expiry" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK12UsergridAuth6expiryGSqCSo6NSDate_">expiry</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -189,14 +224,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The expires in time stamp, if this <code>UsergridAuth</code> was authorized successfully and their was a expires in time stamp within the token response.</p>
+                        <p>The expires at date, if this <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> was authorized successfully and their was a expires in time stamp within the token response.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">expiresIn</span> <span class="p">:</span> <span class="kt">Int</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">expiry</span> <span class="p">:</span> <span class="kt">NSDate</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -221,7 +256,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">hasToken</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">accessToken</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">}</span></code></pre>
 
@@ -233,9 +268,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK12UsergridAuth12tokenIsValidSb"></a>
-                    <a name="//apple_ref/swift/Property/tokenIsValid" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK12UsergridAuth12tokenIsValidSb">tokenIsValid</a>
+                    <a name="/s:vC11UsergridSDK12UsergridAuth7isValidSb"></a>
+                    <a name="//apple_ref/swift/Property/isValid" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK12UsergridAuth7isValidSb">isValid</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -248,9 +283,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">tokenIsValid</span> <span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">hasToken</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="k">self</span><span class="o">.</span><span class="n">isExpired</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">isValid</span> <span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">hasToken</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="k">self</span><span class="o">.</span><span class="n">isExpired</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -275,7 +310,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">isExpired</span><span class="p">:</span> <span class="kt">Bool</span></code></pre>
 
@@ -284,12 +319,23 @@
                     </section>
                   </div>
                 </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
+              <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuthcFMS0_FT_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFMS0_FT_S0_">init()</a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuthcFT11accessTokenSS6expiryGSqCSo6NSDate__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(accessToken:expiry:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFT11accessTokenSS6expiryGSqCSo6NSDate__S0_">init(accessToken:expiry:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -297,26 +343,75 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>Initializer for a base <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> object that just contains an <code><a href="../Classes/UsergridAuth.html#/s:vC11UsergridSDK12UsergridAuth11accessTokenGSqSS_">accessToken</a></code> and an optional <code><a href="../Classes/UsergridAuth.html#/s:vC11UsergridSDK12UsergridAuth6expiryGSqCSo6NSDate_">expiry</a></code> date.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAuth</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">accessToken</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">expiry</span><span class="p">:</span><span class="kt">NSDate</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>accessToken</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The access token.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>expiry</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional expiry date.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code></p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuthcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuthcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -324,26 +419,51 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>NSCoding protocol initializer.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAuth</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> object.</p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -351,14 +471,72 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>NSCoding protocol encoder.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridAuth</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
+                <a href="#/Instance%20Methods">
+                  <h3 class="section-name">Instance Methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridAuth7destroyFT_T_"></a>
+                    <a name="//apple_ref/swift/Method/destroy()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridAuth7destroyFT_T_">destroy()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Destroys/removes the access token and expiry.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">destroy</span><span class="p">()</span></code></pre>
 
                         </div>
                       </div>
@@ -370,8 +548,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClient.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClient.html
index d34565a..09c2175 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClient.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClient.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridClient" class="dashAnchor"></a>
     <a title="UsergridClient Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,8 +164,8 @@
           <section class="section">
             <h1>UsergridClient</h1>
               <div class="declaration">
-                <div class="Swift">
-                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClient</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClient</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                 </div>
               </div>
@@ -139,20 +174,47 @@
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridClient5appIDSS"></a>
-                    <a name="//apple_ref/swift/Property/appID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient5appIDSS">appID</a>
+                    <a name="/s:vC11UsergridSDK14UsergridClient6configCS_20UsergridClientConfig"></a>
+                    <a name="//apple_ref/swift/Property/config" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient6configCS_20UsergridClientConfig">config</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The configuration object used by the client.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">config</span><span class="p">:</span> <span class="kt">UsergridClientConfig</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK14UsergridClient5appIdSS"></a>
+                    <a name="//apple_ref/swift/Property/appId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient5appIdSS">appId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -165,9 +227,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">appID</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">appId</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="n">config</span><span class="o">.</span><span class="n">appId</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -177,9 +239,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridClient5orgIDSS"></a>
-                    <a name="//apple_ref/swift/Property/orgID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient5orgIDSS">orgID</a>
+                    <a name="/s:vC11UsergridSDK14UsergridClient5orgIdSS"></a>
+                    <a name="//apple_ref/swift/Property/orgId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient5orgIdSS">orgId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -192,9 +254,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">orgID</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">orgId</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="n">config</span><span class="o">.</span><span class="n">orgId</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -204,9 +266,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridClient7baseURLSS"></a>
-                    <a name="//apple_ref/swift/Property/baseURL" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient7baseURLSS">baseURL</a>
+                    <a name="/s:vC11UsergridSDK14UsergridClient7baseUrlSS"></a>
+                    <a name="//apple_ref/swift/Property/baseUrl" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient7baseUrlSS">baseUrl</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -219,9 +281,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">baseURL</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">baseUrl</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="n">config</span><span class="o">.</span><span class="n">baseUrl</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -241,14 +303,41 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The constructed URL string based on the <code>UsergridClient</code>&rsquo;s <code>baseURL</code>, <code>orgID</code>, and <code>appID</code>.</p>
+                        <p>The constructed URL string based on the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>&rsquo;s <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient7baseUrlSS">baseUrl</a></code>, <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient5orgIdSS">orgId</a></code>, and <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient5appIdSS">appId</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">clientAppURL</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="s">"</span><span class="se">\(</span><span class="n">baseURL</span><span class="se">)</span><span class="s">/</span><span class="se">\(</span><span class="n">orgID</span><span class="se">)</span><span class="s">/</span><span class="se">\(</span><span class="n">appID</span><span class="se">)</span><span class="s">"</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">clientAppURL</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="s">"</span><span class="se">\(</span><span class="n">baseUrl</span><span class="se">)</span><span class="s">/</span><span class="se">\(</span><span class="n">orgId</span><span class="se">)</span><span class="s">/</span><span class="se">\(</span><span class="n">appId</span><span class="se">)</span><span class="s">"</span> <span class="p">}</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK14UsergridClient28persistCurrentUserInKeychainSb"></a>
+                    <a name="//apple_ref/swift/Property/persistCurrentUserInKeychain" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient28persistCurrentUserInKeychainSb">persistCurrentUserInKeychain</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Whether or not the current user will be saved and restored from the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">persistCurrentUserInKeychain</span><span class="p">:</span> <span class="kt">Bool</span></code></pre>
 
                         </div>
                       </div>
@@ -268,12 +357,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The currently logged in <code>UsergridUser</code>.</p>
+                        <p>The currently logged in <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">currentUser</span><span class="p">:</span> <span class="kt">UsergridUser</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span></code></pre>
 
@@ -295,12 +384,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridUserAuth</code> which consists of the token information from the <code>currentUser</code> property.</p>
+                        <p>The <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> which consists of the token information from the <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">currentUser</a></code> property.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">userAuth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="n">currentUser</span><span class="p">?</span><span class="o">.</span><span class="n">auth</span> <span class="p">}</span></code></pre>
 
@@ -322,14 +411,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The application level <code>UsergridAppAuth</code> object.  Can be set manually but must call <code>authenticateApp</code> to retrive token.</p>
+                        <p>The application level <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> object.  Can be set manually but must call <code>authenticateApp</code> to retrive token.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">appAuth</span><span class="p">:</span> <span class="kt">UsergridAppAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">appAuth</span><span class="p">:</span> <span class="kt">UsergridAppAuth</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -339,9 +428,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridClient12authFallbackOS_20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Property/authFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient12authFallbackOS_20UsergridAuthFallback">authFallback</a>
+                    <a name="/s:vC11UsergridSDK14UsergridClient8authModeOS_16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Property/authMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridClient8authModeOS_16UsergridAuthMode">authMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -349,14 +438,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridAuthFallback</code> value used to determine what type of token will be sent, if any.</p>
+                        <p>The <code><a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a></code> value used to determine what type of token will be sent, if any.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authFallback</span><span class="p">:</span> <span class="kt">UsergridAuthFallback</span> <span class="o">=</span> <span class="o">.</span><span class="kt">App</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authMode</span><span class="p">:</span> <span class="kt">UsergridAuthMode</span></code></pre>
 
                         </div>
                       </div>
@@ -366,20 +455,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIDSS5appIDSS_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(orgID:appID:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIDSS5appIDSS_S0_">init(orgID:appID:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(orgId:appId:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS_S0_">init(orgId:appId:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -387,14 +476,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Initializes instances of <code>UsergridClient</code>.</p>
+                        <p>Initializes instances of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -405,7 +494,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -418,7 +507,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -433,7 +522,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The new instance of <code>UsergridClient</code>.</p>
+                        <p>The new instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                     </section>
@@ -442,9 +531,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIDSS5appIDSS7baseURLSS_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(orgID:appID:baseURL:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT5orgIDSS5appIDSS7baseURLSS_S0_">init(orgID:appID:baseURL:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS7baseUrlSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT5orgIdSS5appIdSS7baseUrlSS_S0_">init(orgId:appId:baseUrl:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -452,14 +541,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Initializes instances of <code>UsergridClient</code>.</p>
+                        <p>Initializes instances of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">baseURL</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -470,7 +559,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -483,7 +572,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -496,7 +585,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>baseURL</em>
+                                <em>baseUrl</em>
                                 </code>
                               </td>
                               <td>
@@ -511,7 +600,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The new instance of <code>UsergridClient</code>.</p>
+                        <p>The new instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                     </section>
@@ -520,9 +609,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClientcFMS0_FT13configurationCS_20UsergridClientConfig_S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT13configurationCS_20UsergridClientConfig_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(configuration:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFMS0_FT13configurationCS_20UsergridClientConfig_S0_">init(configuration:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT13configurationCS_20UsergridClientConfig_S0_">init(configuration:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -530,12 +619,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Initializes instances of <code>UsergridClient</code>.</p>
+                        <p>Initializes instances of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">configuration</span><span class="p">:</span><span class="kt">UsergridClientConfig</span><span class="p">)</span></code></pre>
 
@@ -563,7 +652,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The new instance of <code>UsergridClient</code>.</p>
+                        <p>The new instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                     </section>
@@ -572,20 +661,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Device%20Registration/Push%20Notifications"></a>
-                  <a name="//apple_ref/swift/Section/Device Registration/Push Notifications" class="dashAnchor"></a>
-                  <a href="#/Device%20Registration/Push%20Notifications">
-                    <h3 class="section-name">Device Registration/Push Notifications</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/applyPushToken(_:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClientcFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClientcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -593,12 +682,122 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the shared <code>UsergridDevice</code> instance.</p>
+                        <p>NSCoding protocol initializer.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">required</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Device%20Registration/Push%20Notifications"></a>
+                <a name="//apple_ref/swift/Section/Device Registration/Push Notifications" class="dashAnchor"></a>
+                <a href="#/Device%20Registration/Push%20Notifications">
+                  <h3 class="section-name">Device Registration/Push Notifications</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/applyPushToken(_:notifierID:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:notifierID:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the shared <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> instance.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">applyPushToken</span><span class="p">(</span><span class="nv">pushToken</span><span class="p">:</span> <span class="kt">NSData</span><span class="p">,</span> <span class="nv">notifierID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -656,9 +855,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/applyPushToken(_:pushToken:notifierID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFS0_FTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14applyPushTokenFTCS_14UsergridDevice9pushTokenCSo6NSData10notifierIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">applyPushToken(_:pushToken:notifierID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -666,12 +865,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the given <code>UsergridDevice</code> instance.</p>
+                        <p>Sets the push token for the given notifier ID and performs a PUT request to update the given <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> instance.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">applyPushToken</span><span class="p">(</span><span class="nv">device</span><span class="p">:</span> <span class="kt">UsergridDevice</span><span class="p">,</span> <span class="nv">pushToken</span><span class="p">:</span> <span class="kt">NSData</span><span class="p">,</span> <span class="nv">notifierID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -742,20 +941,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Authorization"></a>
-                  <a name="//apple_ref/swift/Section/Authorization" class="dashAnchor"></a>
-                  <a href="#/Authorization">
-                    <h3 class="section-name">Authorization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Authorization%20and%20User%20Management"></a>
+                <a name="//apple_ref/swift/Section/Authorization and User Management" class="dashAnchor"></a>
+                <a href="#/Authorization%20and%20User%20Management">
+                  <h3 class="section-name">Authorization and User Management</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient15authForRequestsFS0_FT_GSqCS_12UsergridAuth_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15authForRequestsFT_GSqCS_12UsergridAuth_"></a>
                     <a name="//apple_ref/swift/Method/authForRequests()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authForRequestsFS0_FT_GSqCS_12UsergridAuth_">authForRequests()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authForRequestsFT_GSqCS_12UsergridAuth_">authForRequests()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -763,16 +962,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Determines the <code>UsergridAuth</code> object that will be used for all outgoing requests made.</p>
+                        <p>Determines the <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> object that will be used for all outgoing requests made.</p>
 
-<p>If there is a <code>UsergridUser</code> logged in and the token of that user is valid then it will return that.</p>
+<p>If there is a valid temporary <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> set by the functions <code>usingAuth</code> or <code>usingToken</code> it will return that.</p>
 
-<p>Otherwise, if the <code>authFallback</code> is <code>.App</code>, and the <code>UsergridAppAuth</code> of the client is set and the token is valid it will return that.</p>
+<p>If there is a <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> logged in and the token of that user is valid then it will return that.</p>
+
+<p>Otherwise, if the <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient8authModeOS_16UsergridAuthMode">authMode</a></code> is <code>.App</code>, and the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> of the client is set and the token is valid it will return that.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">authForRequests</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">UsergridAuth</span><span class="p">?</span></code></pre>
 
@@ -780,7 +981,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The <code>UsergridAuth</code> if one is found or nil if not.</p>
+                        <p>The <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> if one is found or nil if not.</p>
 
                       </div>
                     </section>
@@ -789,9 +990,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqSS__T___T_"></a>
-                    <a name="//apple_ref/swift/Method/authenticateApp(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqSS__T___T_">authenticateApp(_:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient9usingAuthFCS_12UsergridAuthDS0_"></a>
+                    <a name="//apple_ref/swift/Method/usingAuth(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient9usingAuthFCS_12UsergridAuthDS0_">usingAuth(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -799,12 +1000,120 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridAppAuth</code> that is contained this instance of <code>UsergridCient</code>.</p>
+                        <p>Sets the client&rsquo;s <code>tempAuth</code> property using the passed in <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code>.</p>
+
+<p>This will cause the next CRUD method performed by the client to use the <code>tempAuth</code> property once and will then reset.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">usingAuth</span><span class="p">(</span><span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridAuth</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>auth</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridAuth</code> object to temporarily use for authentication.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10usingTokenFSSDS0_"></a>
+                    <a name="//apple_ref/swift/Method/usingToken(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10usingTokenFSSDS0_">usingToken(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Sets the client&rsquo;s <code>tempAuth</code> property using the passed in token.</p>
+
+<p>This will cause the next CRUD method performed by the client to use the <code>tempAuth</code> property once and will then reset.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">usingToken</span><span class="p">(</span><span class="nv">token</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>auth</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The access token to temporarily use for authentication.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="//apple_ref/swift/Method/authenticateApp(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFTGSqFT4authGSqCS_15UsergridAppAuth_5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Authenticates with the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> that is contained this instance of <code>UsergridCient</code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">authenticateApp</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridAppAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -836,9 +1145,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateApp(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFS0_FTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqSS__T___T_">authenticateApp(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient15authenticateAppFTCS_15UsergridAppAuth10completionGSqFT4authGSqS1__5errorGSqCS_21UsergridResponseError__T___T_">authenticateApp(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -846,12 +1155,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridAppAuth</code> that is passed in.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> that is passed in.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">authenticateApp</span><span class="p">(</span><span class="nv">appAuth</span><span class="p">:</span> <span class="kt">UsergridAppAuth</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridAppAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -896,9 +1205,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_">authenticateUser(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -906,12 +1215,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridUserAuth</code> that is passed in.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> that is passed in.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">authenticateUser</span><span class="p">(</span><span class="nv">userAuth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -956,9 +1265,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/authenticateUser(_:setAsCurrentUser:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFS0_FTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqSS__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient16authenticateUserFTCS_16UsergridUserAuth16setAsCurrentUserSb10completionGSqFT4authGSqS1__4userGSqCS_12UsergridUser_5errorGSqCS_21UsergridResponseError__T___T_">authenticateUser(_:setAsCurrentUser:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -966,12 +1275,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates with the <code>UsergridUserAuth</code> that is passed in.</p>
+                        <p>Authenticates with the <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> that is passed in.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">authenticateUser</span><span class="p">(</span><span class="nv">userAuth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">,</span> <span class="nv">setAsCurrentUser</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1029,9 +1338,95 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/resetPassword(_:old:new:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13resetPasswordFTCS_12UsergridUser3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Changes the given <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>&rsquo;s current password.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">resetPassword</span><span class="p">(</span><span class="nv">user</span><span class="p">:</span> <span class="kt">UsergridUser</span><span class="p">,</span> <span class="nv">old</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">new</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserResetPasswordCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>user</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The user.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>old</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The old password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>new</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The new password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutCurrentUser(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient17logoutCurrentUserFTGSqFT8responseCS_16UsergridResponse_T___T_">logoutCurrentUser(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1044,7 +1439,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logoutCurrentUser</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1076,9 +1471,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUserAllTokens(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFS0_FTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient19logoutUserAllTokensFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUserAllTokens(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1091,7 +1486,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logoutUserAllTokens</span><span class="p">(</span><span class="nv">uuidOrUsername</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1123,9 +1518,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10logoutUserFS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/logoutUser(_:token:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10logoutUserFS0_FTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10logoutUserFTSS5tokenGSqSS_10completionGSqFT8responseCS_16UsergridResponse_T___T_">logoutUser(_:token:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1140,7 +1535,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logoutUser</span><span class="p">(</span><span class="nv">uuidOrUsername</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">token</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1172,20 +1567,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/GET"></a>
-                  <a name="//apple_ref/swift/Section/GET" class="dashAnchor"></a>
-                  <a href="#/GET">
-                    <h3 class="section-name">GET</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Generic%20Request%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Generic Request Methods" class="dashAnchor"></a>
+                <a href="#/Generic%20Request%20Methods">
+                  <h3 class="section-name">Generic Request Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/GET(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/sendRequest(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11sendRequestFTCS_15UsergridRequest10completionGSqFT8responseCS_16UsergridResponse_T___T_">sendRequest(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1193,12 +1588,89 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets a single <code>UsergridEntity</code> of a given type with a specific UUID/name.</p>
+                        <p>Starts the <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code> sending process.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>This method should only be used when you construct your own <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code> objects.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">sendRequest</span><span class="p">(</span><span class="nv">request</span><span class="p">:</span><span class="kt">UsergridRequest</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>request</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridRequest</code> object to send.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/GET"></a>
+                <a name="//apple_ref/swift/Section/GET" class="dashAnchor"></a>
+                <a href="#/GET">
+                  <h3 class="section-name">GET</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/GET(_:uuidOrName:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:uuidOrName:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets a single <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of a given type with a specific UUID/name.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1242,7 +1714,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1256,9 +1728,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/GET(_:query:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFS0_FTSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:query:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/GET(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFTSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1266,14 +1738,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets a group of <code>UsergridEntity</code> objects of a given type with an optional query.</p>
+                        <p>Gets a group of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects of a given type.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -1297,12 +1769,59 @@
                             <tr>
                               <td>
                                 <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/GET(_:queryCompletion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3GETFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">GET(_:queryCompletion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets a group of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects using a given query.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">GET</span><span class="p">(</span><span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">,</span> <span class="nv">queryCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
                                 <em>query</em>
                                 </code>
                               </td>
                               <td>
                                 <div>
-                                  <p>The optional query to use when gathering <code>UsergridEntity</code> objects.</p>
+                                  <p>The query to use when gathering <code>UsergridEntity</code> objects.</p>
 
                                 </div>
                               </td>
@@ -1310,12 +1829,12 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>completion</em>
+                                <em>queryCompletion</em>
                                 </code>
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1329,20 +1848,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/PUT"></a>
-                  <a name="//apple_ref/swift/Section/PUT" class="dashAnchor"></a>
-                  <a href="#/PUT">
-                    <h3 class="section-name">PUT</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/PUT"></a>
+                <a name="//apple_ref/swift/Section/PUT" class="dashAnchor"></a>
+                <a href="#/PUT">
+                  <h3 class="section-name">PUT</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:uuidOrName:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS10uuidOrNameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTSS10uuidOrNameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:uuidOrName:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1350,12 +1869,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Updates an <code>UsergridEntity</code> with the given type and UUID/name specified using the passed in jsonBody.</p>
+                        <p>Updates an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> with the given type and UUID/name specified using the passed in jsonBody.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1412,7 +1931,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1426,9 +1945,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1436,12 +1955,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Updates the passed in <code>UsergridEntity</code>.</p>
+                        <p>Updates the passed in <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1472,7 +1991,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1486,9 +2005,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1496,12 +2015,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Updates an <code>UsergridEntity</code> with the given type using the jsonBody where the UUID/name is specified inside of the jsonBody.</p>
+                        <p>Updates an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> with the given type using the jsonBody where the UUID/name is specified inside of the jsonBody.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The <code>jsonBody</code> must contain a valid value for either <code>uuid</code> or <code>name</code> keys.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1559,9 +2084,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/PUT(_:jsonBody:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFS0_FTCS_13UsergridQuery8jsonBodyGVSs10DictionarySSPSs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient3PUTFTCS_13UsergridQuery8jsonBodyGVs10DictionarySSPs9AnyObject__15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">PUT(_:jsonBody:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1571,10 +2096,16 @@
                       <div class="abstract">
                         <p>Updates the entities that fit the given query using the passed in jsonBody.</p>
 
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The query parameter must have a valid <code>collectionName</code> before calling this method.</p>
+
+</div>
+
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">PUT</span><span class="p">(</span><span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">queryCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1618,7 +2149,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1632,20 +2163,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/POST"></a>
-                  <a name="//apple_ref/swift/Section/POST" class="dashAnchor"></a>
-                  <a href="#/POST">
-                    <h3 class="section-name">POST</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/POST"></a>
+                <a name="//apple_ref/swift/Section/POST" class="dashAnchor"></a>
+                <a href="#/POST">
+                  <h3 class="section-name">POST</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1653,14 +2184,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts creates an <code>UsergridEntity</code>.
-- parameter entity:     The <code>UsergridEntity</code> to create.
-- parameter completion: The completion block that will be called once the request has completed.</p>
+                        <p>Creates and posts creates an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.
+- parameter entity:     The <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> to create.
+- parameter completion: The optional completion block that will be called once the request has completed.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1691,7 +2222,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1705,9 +2236,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:entitiesCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTGSaCS_14UsergridEntity_18entitiesCompletionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:entitiesCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1715,12 +2246,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts an array of <code>UsergridEntity</code> objects.</p>
+                        <p>Creates and posts an array of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>Each <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> in the array much already have a type assigned and must be the same.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">entities</span><span class="p">:[</span><span class="kt">UsergridEntity</span><span class="p">],</span> <span class="nv">entitiesCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1751,7 +2288,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1765,9 +2302,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1775,12 +2312,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts an <code>UsergridEntity</code> of the given type with the given jsonBody.</p>
+                        <p>Creates and posts an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of the given type with the given jsonBody.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1824,7 +2361,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1838,9 +2375,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:jsonBodies:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS10jsonBodiesGSaGVSs10DictionarySSPSs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTSS10jsonBodiesGSaGVs10DictionarySSPs9AnyObject___10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:jsonBodies:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1853,7 +2390,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBodies</span><span class="p">:[[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1897,7 +2434,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1911,9 +2448,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/POST(_:name:jsonBody:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFS0_FTSS4nameSS8jsonBodyGVSs10DictionarySSPSs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient4POSTFTSS4nameSS8jsonBodyGVs10DictionarySSPs9AnyObject__10completionGSqFT8responseCS_16UsergridResponse_T___T_">POST(_:name:jsonBody:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1921,12 +2458,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates and posts an <code>UsergridEntity</code> of the given type with a given name and the given jsonBody.</p>
+                        <p>Creates and posts an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of the given type with a given name and the given jsonBody.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">POST</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">],</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1983,7 +2520,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -1997,20 +2534,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/DELETE"></a>
-                  <a name="//apple_ref/swift/Section/DELETE" class="dashAnchor"></a>
-                  <a href="#/DELETE">
-                    <h3 class="section-name">DELETE</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/DELETE"></a>
+                <a name="//apple_ref/swift/Section/DELETE" class="dashAnchor"></a>
+                <a href="#/DELETE">
+                  <h3 class="section-name">DELETE</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_14UsergridEntity10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2018,12 +2555,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Destroys the passed <code>UsergridEntity</code>.</p>
+                        <p>Destroys the passed <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The entity object must have a <code>uuid</code> or <code>name</code> assigned.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">DELETE</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2054,7 +2597,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2068,9 +2611,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:queryCompletion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFTCS_13UsergridQuery15queryCompletionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:queryCompletion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2078,12 +2621,18 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Destroys the <code>UsergridEntity</code> objects that fit the given <code>UsergridQuery</code>.</p>
+                        <p>Destroys the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects that fit the given <code><a href="../Classes/UsergridQuery.html">UsergridQuery</a></code>.</p>
+
+<div class="aside aside-note">
+    <p class="aside-title">Note</p>
+    <p>The query parameter must have a valid <code>collectionName</code> before calling this method.</p>
+
+</div>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">DELETE</span><span class="p">(</span><span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">,</span> <span class="nv">queryCompletion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2114,7 +2663,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2128,9 +2677,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/DELETE(_:uuidOrName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFS0_FTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient6DELETEFTSS10uuidOrNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">DELETE(_:uuidOrName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2138,12 +2687,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Destroys the <code>UsergridEntity</code> of a given type with a specific UUID/name.</p>
+                        <p>Destroys the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> of a given type with a specific UUID/name.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="kt">DELETE</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2187,7 +2736,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2201,20 +2750,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Connection%20Management"></a>
-                  <a name="//apple_ref/swift/Section/Connection Management" class="dashAnchor"></a>
-                  <a href="#/Connection%20Management">
-                    <h3 class="section-name">Connection Management</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Connection%20Management"></a>
+                <a name="//apple_ref/swift/Section/Connection Management" class="dashAnchor"></a>
+                <a href="#/Connection%20Management">
+                  <h3 class="section-name">Connection Management</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:relationship:to:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFS0_FTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFTCS_14UsergridEntity12relationshipSS2toS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:to:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2222,12 +2771,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Connects the <code>UsergridEntity</code> objects via the relationship.</p>
+                        <p>Connects the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects via the relationship.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">to</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2284,7 +2833,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2298,121 +2847,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Connects the entity objects via the relationship.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toType</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">toID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
-
-                        </div>
-                      </div>
-                      <div>
-                        <h4>Parameters</h4>
-                        <table class="graybox">
-                          <tbody>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>entityType</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The entity type.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>entityID</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The entity UUID or name.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>relationship</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The relationship of the connection.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>toType</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The optional type of the entity you are connecting to.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>toID</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The UUID of the entity you are connecting to.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>completion</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFS0_FTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeSS6toNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2425,7 +2862,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2508,7 +2945,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2522,9 +2959,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/disconnect(_:relationship:from:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/connect(_:entityID:relationship:toType:toID:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient7connectFTSS8entityIDSS12relationshipSS6toTypeGSqSS_4toIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:entityID:relationship:toType:toID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2532,12 +2969,124 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Disconnects the <code>UsergridEntity</code> objects via the relationship.</p>
+                        <p>Connects the entity objects via the relationship.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toType</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">toID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>entityType</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity type.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>entityID</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity UUID or name.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>relationship</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The relationship of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>toType</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional type of the entity you are connecting to.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>toID</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The UUID of the entity you are connecting to.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/disconnect(_:relationship:from:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFTCS_14UsergridEntity12relationshipSS4fromS1_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:from:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Disconnects the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects via the relationship.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">from</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2594,7 +3143,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2608,121 +3157,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromID:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Disconnects the entity objects via the relationship.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromType</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">fromID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
-
-                        </div>
-                      </div>
-                      <div>
-                        <h4>Parameters</h4>
-                        <table class="graybox">
-                          <tbody>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>entityType</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The entity type.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>entityID</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The entity UUID or name.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>relationship</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The relationship of the connection.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>fromType</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The optional type of the entity you are disconnecting from.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>toID</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The UUID of the entity you are disconnecting from.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>completion</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromName:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFS0_FTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeSS8fromNameSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromName:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2735,7 +3172,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2818,7 +3255,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -2832,9 +3269,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/getConnections(_:entity:relationship:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/disconnect(_:entityID:relationship:fromType:fromID:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient10disconnectFTSS8entityIDSS12relationshipSS8fromTypeGSqSS_6fromIDSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:entityID:relationship:fromType:fromID:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2842,14 +3279,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the connected entities for the given relationship.</p>
+                        <p>Disconnects the entity objects via the relationship.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromType</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">fromID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -2860,92 +3297,6 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>entity</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The entity that contains the connection.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>relationship</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The relationship of the connection.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>completion</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection10entityTypeSS8entityIDSS12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/getConnections(_:entityType:entityID:relationship:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFS0_FTOS_17UsergridDirection10entityTypeSS8entityIDSS12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entityType:entityID:relationship:completion:)</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Gets the connected entities for the given relationship.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entityType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">entityID</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
-
-                        </div>
-                      </div>
-                      <div>
-                        <h4>Parameters</h4>
-                        <table class="graybox">
-                          <tbody>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>direction</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The direction of the connection.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
                                 <em>entityType</em>
                                 </code>
                               </td>
@@ -2985,12 +3336,335 @@
                             <tr>
                               <td>
                                 <code>
+                                <em>fromType</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional type of the entity you are disconnecting from.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>toID</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The UUID of the entity you are disconnecting from.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
                                 <em>completion</em>
                                 </code>
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:entity:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection6entityCS_14UsergridEntity12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:entity:relationship:query:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected entities for the given relationship.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>entity</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity that contains the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>relationship</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The relationship of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:type:uuidOrName:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4typeSS10uuidOrNameSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:type:uuidOrName:relationship:query:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected entities for the given relationship.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>direction</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The direction of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>type</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity type.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>uuidOrName</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity UUID or name.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>relationship</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The relationship of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:uuid:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient14getConnectionsFTOS_17UsergridDirection4uuidSS12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:uuid:relationship:query:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected entities for the given relationship.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">uuid</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>direction</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The direction of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>uuid</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity UUID.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>relationship</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The relationship of the connection.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -3004,20 +3678,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Asset%20Management"></a>
-                  <a name="//apple_ref/swift/Section/Asset Management" class="dashAnchor"></a>
-                  <a href="#/Asset%20Management">
-                    <h3 class="section-name">Asset Management</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Asset%20Management"></a>
+                <a name="//apple_ref/swift/Section/Asset Management" class="dashAnchor"></a>
+                <a href="#/Asset%20Management">
+                  <h3 class="section-name">Asset Management</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient11uploadAssetFS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11uploadAssetFS0_FTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient11uploadAssetFTCS_14UsergridEntity5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:asset:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3025,12 +3699,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Uploads the asset and connects the data to the given <code>UsergridEntity</code>.</p>
+                        <p>Uploads the asset and connects the data to the given <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">uploadAsset</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetUploadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -3074,7 +3748,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The progress block that will be called to update the progress of the upload.</p>
+                                  <p>The optional progress block that will be called to update the progress of the upload.</p>
 
                                 </div>
                               </td>
@@ -3087,7 +3761,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The completion block that will be called once the request has completed.</p>
+                                  <p>The optional completion block that will be called once the request has completed.</p>
 
                                 </div>
                               </td>
@@ -3101,9 +3775,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridClient13downloadAssetFS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridClient13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:contentType:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13downloadAssetFS0_FTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridClient13downloadAssetFTCS_14UsergridEntity11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -3111,12 +3785,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Downloads the asset from the given <code>UsergridEntity</code>.</p>
+                        <p>Downloads the asset from the given <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">downloadAsset</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetDownloadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -3189,8 +3863,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClientConfig.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClientConfig.html
index 05c2a85..b7abeab 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClientConfig.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridClientConfig.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridClientConfig" class="dashAnchor"></a>
     <a title="UsergridClientConfig Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,32 +164,32 @@
           <section class="section">
             <h1>UsergridClientConfig</h1>
               <div class="declaration">
-                <div class="Swift">
-                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClientConfig</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClientConfig</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridClientConfig</code> is used when initializing <code>UsergridClient</code> objects.</p>
+            <p><code>UsergridClientConfig</code> is used when initializing <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> objects.</p>
 
-<p>The <code>UsergridClientConfig</code> is meant for further customization of <code>UsergridClient</code> objects when needed.</p>
+<p>The <code>UsergridClientConfig</code> is meant for further customization of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> objects when needed.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK20UsergridClientConfig5orgIDSS"></a>
-                    <a name="//apple_ref/swift/Property/orgID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig5orgIDSS">orgID</a>
+                    <a name="/s:vC11UsergridSDK20UsergridClientConfig5orgIdSS"></a>
+                    <a name="//apple_ref/swift/Property/orgId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig5orgIdSS">orgId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -167,9 +202,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">orgID</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">orgId</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
 
                         </div>
                       </div>
@@ -179,9 +214,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK20UsergridClientConfig5appIDSS"></a>
-                    <a name="//apple_ref/swift/Property/appID" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig5appIDSS">appID</a>
+                    <a name="/s:vC11UsergridSDK20UsergridClientConfig5appIdSS"></a>
+                    <a name="//apple_ref/swift/Property/appId" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig5appIdSS">appId</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -194,9 +229,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">appID</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">appId</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
 
                         </div>
                       </div>
@@ -206,9 +241,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK20UsergridClientConfig7baseURLSS"></a>
-                    <a name="//apple_ref/swift/Property/baseURL" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig7baseURLSS">baseURL</a>
+                    <a name="/s:vC11UsergridSDK20UsergridClientConfig7baseUrlSS"></a>
+                    <a name="//apple_ref/swift/Property/baseUrl" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig7baseUrlSS">baseUrl</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -221,9 +256,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">baseURL</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt">UsergridClient</span><span class="o">.</span><span class="kt">DEFAULT_BASE_URL</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">baseUrl</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt">UsergridClient</span><span class="o">.</span><span class="kt">DEFAULT_BASE_URL</span></code></pre>
 
                         </div>
                       </div>
@@ -233,9 +268,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK20UsergridClientConfig12authFallbackOS_20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Property/authFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig12authFallbackOS_20UsergridAuthFallback">authFallback</a>
+                    <a name="/s:vC11UsergridSDK20UsergridClientConfig8authModeOS_16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Property/authMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig8authModeOS_16UsergridAuthMode">authMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -243,14 +278,41 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridAuthFallback</code> value used to determine what type of token will be sent, if any.</p>
+                        <p>The <code><a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a></code> value used to determine what type of token will be sent, if any.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authFallback</span><span class="p">:</span> <span class="kt">UsergridAuthFallback</span> <span class="o">=</span> <span class="o">.</span><span class="kt">None</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">authMode</span><span class="p">:</span> <span class="kt">UsergridAuthMode</span> <span class="o">=</span> <span class="o">.</span><span class="kt">User</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK20UsergridClientConfig28persistCurrentUserInKeychainSb"></a>
+                    <a name="//apple_ref/swift/Property/persistCurrentUserInKeychain" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK20UsergridClientConfig28persistCurrentUserInKeychainSb">persistCurrentUserInKeychain</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Whether or not the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> current user will be saved and restored from the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">persistCurrentUserInKeychain</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">true</span></code></pre>
 
                         </div>
                       </div>
@@ -270,14 +332,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The application level <code>UsergridAppAuth</code> object.</p>
+                        <p>The application level <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> object.</p>
 
-<p>Note that you still need to call the authentication methods within <code>UsergridClient</code> once it has been initialized.</p>
+<p>Note that you still need to call the authentication methods within <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> once it has been initialized.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">appAuth</span><span class="p">:</span> <span class="kt">UsergridAppAuth</span><span class="p">?</span></code></pre>
 
@@ -289,20 +351,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIDSS5appIDSS_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(orgID:appID:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIDSS5appIDSS_S0_">init(orgID:appID:)</a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(orgId:appId:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS_S0_">init(orgId:appId:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -310,14 +372,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridClientConfig</code> objects.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -328,7 +390,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -341,7 +403,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -356,7 +418,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridClientConfig</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a></code>.</p>
 
                       </div>
                     </section>
@@ -365,9 +427,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIDSS5appIDSS7baseURLSS_S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(orgID:appID:baseURL:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIDSS5appIDSS7baseURLSS_S0_">init(orgID:appID:baseURL:)</a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS_S0_">init(orgId:appId:baseUrl:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -375,14 +437,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Convenience initializer for <code>UsergridClientConfig</code>.</p>
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseURL</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -393,7 +455,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -406,7 +468,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -419,7 +481,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>baseURL</em>
+                                <em>baseUrl</em>
                                 </code>
                               </td>
                               <td>
@@ -434,7 +496,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridClientConfig</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a></code>.</p>
 
                       </div>
                     </section>
@@ -443,9 +505,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIDSS5appIDSS7baseURLSS12authFallbackOS_20UsergridAuthFallback7appAuthGSqCS_15UsergridAppAuth__S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(orgID:appID:baseURL:authFallback:appAuth:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFMS0_FT5orgIDSS5appIDSS7baseURLSS12authFallbackOS_20UsergridAuthFallback7appAuthGSqCS_15UsergridAppAuth__S0_">init(orgID:appID:baseURL:authFallback:appAuth:)</a>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS8authModeOS_16UsergridAuthMode28persistCurrentUserInKeychainSb7appAuthGSqCS_15UsergridAppAuth__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(orgId:appId:baseUrl:authMode:persistCurrentUserInKeychain:appAuth:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5orgIdSS5appIdSS7baseUrlSS8authModeOS_16UsergridAuthMode28persistCurrentUserInKeychainSb7appAuthGSqCS_15UsergridAppAuth__S0_">init(orgId:appId:baseUrl:authMode:persistCurrentUserInKeychain:appAuth:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -453,14 +515,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Convenience initializer for <code>UsergridClientConfig</code>.</p>
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseURL</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">authFallback</span><span class="p">:</span><span class="kt">UsergridAuthFallback</span><span class="p">,</span> <span class="nv">appAuth</span><span class="p">:</span><span class="kt">UsergridAppAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">authMode</span><span class="p">:</span><span class="kt">UsergridAuthMode</span><span class="p">,</span> <span class="nv">persistCurrentUserInKeychain</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> <span class="nv">appAuth</span><span class="p">:</span><span class="kt">UsergridAppAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -471,7 +533,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>orgID</em>
+                                <em>orgId</em>
                                 </code>
                               </td>
                               <td>
@@ -484,7 +546,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>appID</em>
+                                <em>appId</em>
                                 </code>
                               </td>
                               <td>
@@ -497,7 +559,7 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>baseURL</em>
+                                <em>baseUrl</em>
                                 </code>
                               </td>
                               <td>
@@ -510,12 +572,25 @@
                             <tr>
                               <td>
                                 <code>
-                                <em>authFallback</em>
+                                <em>authMode</em>
                                 </code>
                               </td>
                               <td>
                                 <div>
-                                  <p>The <code>UsergridAuthFallback</code> value used to determine what type of token will be sent, if any.</p>
+                                  <p>The <code>UsergridAuthMode</code> value used to determine what type of token will be sent, if any.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>persistCurrentUserInKeychain</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>Whether or not the <code>UsergridClient</code> current user will be saved and restored from the keychain.</p>
 
                                 </div>
                               </td>
@@ -538,7 +613,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridClientConfig</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a></code>.</p>
 
                       </div>
                     </section>
@@ -546,11 +621,121 @@
                 </li>
               </ul>
             </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfigcFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfigcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol initializer.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">required</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK20UsergridClientConfig15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridClientConfig15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridDevice.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridDevice.html
index 97d3047..9cda8aa 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridDevice.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridDevice.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridDevice" class="dashAnchor"></a>
     <a title="UsergridDevice Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridDevice</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridDevice</span> <span class="p">:</span> <span class="kt">UsergridEntity</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridDevice</code> is an <code>UsergridEntity</code> subclass that encapsulates information about the current device as well as stores information about push tokens and Usergrid notifiers.</p>
+            <p><code>UsergridDevice</code> is an <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> subclass that encapsulates information about the current device as well as stores information about push tokens and Usergrid notifiers.</p>
 
 <p>To apply push tokens for Usergrid notifiers use the <code>UsergridClient.applyPushToken</code> method.</p>
 
@@ -145,9 +180,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:sC11UsergridSDK14UsergridDevice9subscriptFSSGSqPSs9AnyObject__"></a>
+                    <a name="/s:iC11UsergridSDK14UsergridDevice9subscriptFSSGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/subscript(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:sC11UsergridSDK14UsergridDevice9subscriptFSSGSqPSs9AnyObject__">subscript(_:)</a>
+                    <a class="token" href="#/s:iC11UsergridSDK14UsergridDevice9subscriptFSSGSqPs9AnyObject__">subscript(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -155,19 +190,23 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Subscript for the <code>UsergridDevice</code> class. Note that all of the <code>UsergridDeviceProperties</code> are immutable.</p>
+                        <p>Subscript for the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> class. Note that all of the <code><a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a></code> are immutable.</p>
 
-<ul>
-<li><p>Example usage:
+<div class="aside aside-warning">
+    <p class="aside-title">Warning</p>
+    <p>When setting a properties value must be a valid JSON object.</p>
+
+</div>
+
+<p><li><p>Example usage:
 <code>
 let uuid = usergridDevice[&quot;uuid&quot;]
-</code></p></li>
-</ul>
+</code></p></li></p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="nf">subscript</span><span class="p">(</span><span class="nv">propertyName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">AnyObject</span><span class="p">?</span></code></pre>
 
@@ -179,44 +218,17 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridDevice4uuidSS"></a>
-                    <a name="//apple_ref/swift/Property/uuid" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridDevice4uuidSS">uuid</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Property helper method for the <code>UsergridDevice</code> objects <code>uuid</code>.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">uuid</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="k">super</span><span class="p">[</span><span class="kt">UsergridEntityProperties</span><span class="o">.</span><span class="kt">UUID</span><span class="o">.</span><span class="n">stringValue</span><span class="p">]</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
-
-                        </div>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
                     <a name="/s:vC11UsergridSDK14UsergridDevice5modelSS"></a>
                     <a name="//apple_ref/swift/Property/model" class="dashAnchor"></a>
                     <a class="token" href="#/s:vC11UsergridSDK14UsergridDevice5modelSS">model</a>
@@ -227,12 +239,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridDevice</code> objects device model.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> objects device model.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">model</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="k">super</span><span class="p">[</span><span class="kt">UsergridDeviceProperties</span><span class="o">.</span><span class="kt">Model</span><span class="o">.</span><span class="n">stringValue</span><span class="p">]</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
 
@@ -254,12 +266,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridDevice</code> objects device platform.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> objects device platform.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">platform</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="k">super</span><span class="p">[</span><span class="kt">UsergridDeviceProperties</span><span class="o">.</span><span class="kt">Platform</span><span class="o">.</span><span class="n">stringValue</span><span class="p">]</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
 
@@ -281,12 +293,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridDevice</code> objects device operating system version.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> objects device operating system version.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">osVersion</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="k">super</span><span class="p">[</span><span class="kt">UsergridDeviceProperties</span><span class="o">.</span><span class="kt">OSVersion</span><span class="o">.</span><span class="n">stringValue</span><span class="p">]</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
 
@@ -295,17 +307,6 @@
                     </section>
                   </div>
                 </li>
-              </ul>
-            </div>
-            <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
-              <ul>
                 <li class="item">
                   <div>
                     <code>
@@ -319,26 +320,37 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The shared instance of <code>UsergridDevice</code>.</p>
+                        <p>The shared instance of <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">sharedDevice</span><span class="p">:</span> <span class="kt">UsergridDevice</span> <span class="o">=</span> <span class="kt">UsergridDevice</span><span class="p">()</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">sharedDevice</span><span class="p">:</span> <span class="kt">UsergridDevice</span> <span class="o">=</span> <span class="kt">UsergridDevice</span><span class="o">.</span><span class="nf">getOrCreateSharedDeviceFromKeychain</span><span class="p">()</span></code></pre>
 
                         </div>
                       </div>
                     </section>
                   </div>
                 </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
+              <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridDevicecFMS0_FT_S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridDevicecFT_S0_"></a>
                     <a name="//apple_ref/swift/Method/init()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFMS0_FT_S0_">init()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFT_S0_">init()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -346,14 +358,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated Initializer for <code>UsergridDevice</code> objects</p>
+                        <p>Designated Initializer for <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> objects</p>
 
-<p>Most likely you will never need to create seperate instances of <code>UsergridDevice</code>.  Use of <code>UsergridDevice.sharedInstance</code> is recommended.</p>
+<p>Most likely you will never need to create seperate instances of <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code>.  Use of <code>UsergridDevice.sharedInstance</code> is recommended.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">()</span></code></pre>
 
@@ -361,7 +373,376 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridDevice</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevicecFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(type:name:propertyDict:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(type:name:propertyDict:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The required public initializer for <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> subclasses.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>type</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The type associated with the <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>name</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional name associated with the <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>propertyDict</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional property dictionary that the <code>UsergridEntity</code> object will start out with.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevicecFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevicecFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol initializer.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevice15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevice4saveFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/save(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice4saveFTGSqFT8responseCS_16UsergridResponse_T___T_">save(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Performs a PUT (or POST if no UUID is found) on the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+<p>If this device is equal to <code><a href="../Classes/UsergridDevice.html#/s:ZvC11UsergridSDK14UsergridDevice12sharedDeviceS0_">UsergridDevice.sharedDevice</a></code> it will also update the shared device on the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="kd">func</span> <span class="nf">save</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>An optional completion block that, if successful, will contain the updated/saved <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridDevice4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/save(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridDevice4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">save(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Performs a PUT (or POST if no UUID is found) on the <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code>.</p>
+
+<p>If this device is equal to <code><a href="../Classes/UsergridDevice.html#/s:ZvC11UsergridSDK14UsergridDevice12sharedDeviceS0_">UsergridDevice.sharedDevice</a></code> it will also update the shared device on the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="kd">func</span> <span class="nf">save</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The client to use when saving.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>An optional completion block that, if successful, will contain the updated/saved <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK14UsergridDevice26saveSharedDeviceToKeychainFT_T_"></a>
+                    <a name="//apple_ref/swift/Method/saveSharedDeviceToKeychain()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridDevice26saveSharedDeviceToKeychainFT_T_">saveSharedDeviceToKeychain()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Saves the <code><a href="../Classes/UsergridDevice.html#/s:ZvC11UsergridSDK14UsergridDevice12sharedDeviceS0_">UsergridDevice.sharedDevice</a></code> to the keychain.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">saveSharedDeviceToKeychain</span><span class="p">()</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Class%20Helper%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Class Helper Methods" class="dashAnchor"></a>
+                <a href="#/Class%20Helper%20Methods">
+                  <h3 class="section-name">Class Helper Methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK14UsergridDevice24commonDevicePropertyDictFT_GVs10DictionarySSPs9AnyObject__"></a>
+                    <a name="//apple_ref/swift/Method/commonDevicePropertyDict()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridDevice24commonDevicePropertyDictFT_GVs10DictionarySSPs9AnyObject__">commonDevicePropertyDict()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Creates a property dictionary that contains the common properties for <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">commonDevicePropertyDict</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A property dictionary with the common properties set.</p>
 
                       </div>
                     </section>
@@ -372,8 +753,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridEntity.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridEntity.html
index eb29590..280138b 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridEntity.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridEntity.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridEntity" class="dashAnchor"></a>
     <a title="UsergridEntity Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,8 +164,8 @@
           <section class="section">
             <h1>UsergridEntity</h1>
               <div class="declaration">
-                <div class="Swift">
-                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridEntity</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridEntity</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCoding</span></code></pre>
 
                 </div>
               </div>
@@ -141,20 +176,13 @@
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:sC11UsergridSDK14UsergridEntity9subscriptFSSGSqPSs9AnyObject__"></a>
+                    <a name="/s:iC11UsergridSDK14UsergridEntity9subscriptFSSGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/subscript(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:sC11UsergridSDK14UsergridEntity9subscriptFSSGSqPSs9AnyObject__">subscript(_:)</a>
+                    <a class="token" href="#/s:iC11UsergridSDK14UsergridEntity9subscriptFSSGSqPs9AnyObject__">subscript(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -162,7 +190,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Subscript for the <code>UsergridEntity</code> class.</p>
+                        <p>Subscript for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> class.</p>
 
 <ul>
 <li>Example usage:
@@ -175,7 +203,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">subscript</span><span class="p">(</span><span class="nv">propertyName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">AnyObject</span><span class="p">?</span></code></pre>
 
@@ -184,6 +212,17 @@
                     </section>
                   </div>
                 </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
+              <ul>
                 <li class="item">
                   <div>
                     <code>
@@ -197,14 +236,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridAsset</code> that contains the asset data.</p>
+                        <p>The <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> that contains the asset data.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">asset</span><span class="p">:</span> <span class="kt">UsergridAsset</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">asset</span><span class="p">:</span> <span class="kt">UsergridAsset</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -224,14 +263,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridFileMetaData</code> of this <code>UsergridEntity</code>.</p>
+                        <p>The <code><a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a></code> of this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">private(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">fileMetaData</span> <span class="p">:</span> <span class="kt">UsergridFileMetaData</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">fileMetaData</span> <span class="p">:</span> <span class="kt">UsergridFileMetaData</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -251,12 +290,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridEntity</code> objects <code>UsergridEntityProperties.EntityType</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects <code><a href="../Enums/UsergridEntityProperties.html#/s:FO11UsergridSDK24UsergridEntityProperties10EntityTypeFMS0_S0_">UsergridEntityProperties.EntityType</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">type</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">getEntitySpecificProperty</span><span class="p">(</span><span class="o">.</span><span class="kt">EntityType</span><span class="p">)</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
 
@@ -278,12 +317,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridEntity</code> objects <code>UsergridEntityProperties.UUID</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects <code><a href="../Enums/UsergridEntityProperties.html#/s:FO11UsergridSDK24UsergridEntityProperties4UUIDFMS0_S0_">UsergridEntityProperties.UUID</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">uuid</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">getEntitySpecificProperty</span><span class="p">(</span><span class="o">.</span><span class="kt">UUID</span><span class="p">)</span> <span class="k">as?</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
 
@@ -305,12 +344,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridEntity</code> objects <code>UsergridEntityProperties.Name</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects <code><a href="../Enums/UsergridEntityProperties.html#/s:FO11UsergridSDK24UsergridEntityProperties4NameFMS0_S0_">UsergridEntityProperties.Name</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">getEntitySpecificProperty</span><span class="p">(</span><span class="o">.</span><span class="kt">Name</span><span class="p">)</span> <span class="k">as?</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
 
@@ -332,12 +371,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridEntity</code> objects <code>UsergridEntityProperties.Created</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects <code><a href="../Enums/UsergridEntityProperties.html#/s:FO11UsergridSDK24UsergridEntityProperties7CreatedFMS0_S0_">UsergridEntityProperties.Created</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">created</span><span class="p">:</span> <span class="kt">NSDate</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">getEntitySpecificProperty</span><span class="p">(</span><span class="o">.</span><span class="kt">Created</span><span class="p">)</span> <span class="k">as?</span> <span class="kt">NSDate</span> <span class="p">}</span></code></pre>
 
@@ -359,12 +398,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridEntity</code> objects <code>UsergridEntityProperties.Modified</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects <code><a href="../Enums/UsergridEntityProperties.html#/s:FO11UsergridSDK24UsergridEntityProperties8ModifiedFMS0_S0_">UsergridEntityProperties.Modified</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">modified</span><span class="p">:</span> <span class="kt">NSDate</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">getEntitySpecificProperty</span><span class="p">(</span><span class="o">.</span><span class="kt">Modified</span><span class="p">)</span> <span class="k">as?</span> <span class="kt">NSDate</span> <span class="p">}</span></code></pre>
 
@@ -386,12 +425,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridEntity</code> objects <code>UsergridEntityProperties.Location</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects <code><a href="../Enums/UsergridEntityProperties.html#/s:FO11UsergridSDK24UsergridEntityProperties8LocationFMS0_S0_">UsergridEntityProperties.Location</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">location</span><span class="p">:</span> <span class="kt">CLLocation</span><span class="p">?</span></code></pre>
 
@@ -413,12 +452,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method to get the UUID or name of the <code>UsergridEntity</code>.</p>
+                        <p>Property helper method to get the UUID or name of the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">uuid</span> <span class="p">??</span> <span class="k">self</span><span class="o">.</span><span class="n">name</span> <span class="p">}</span></code></pre>
 
@@ -440,12 +479,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Tells you if this <code>UsergridEntity</code> has a type of <code>user</code>.</p>
+                        <p>Tells you if this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> has a type of <code>user</code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">isUser</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span> <span class="k">is</span> <span class="kt">UsergridUser</span> <span class="o">||</span> <span class="k">self</span><span class="o">.</span><span class="n">type</span> <span class="o">==</span> <span class="kt">UsergridUser</span><span class="o">.</span><span class="kt">USER_ENTITY_TYPE</span> <span class="p">}</span></code></pre>
 
@@ -472,7 +511,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">hasAsset</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="k">asset</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="o">||</span> <span class="k">self</span><span class="o">.</span><span class="n">fileMetaData</span><span class="p">?</span><span class="o">.</span><span class="n">contentLength</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="p">}</span></code></pre>
 
@@ -484,9 +523,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVSs10DictionarySSPSs9AnyObject__"></a>
+                    <a name="/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVs10DictionarySSPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Property/jsonObjectValue" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVSs10DictionarySSPSs9AnyObject__">jsonObjectValue</a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridEntity15jsonObjectValueGVs10DictionarySSPs9AnyObject__">jsonObjectValue</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -499,7 +538,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">jsonObjectValue</span> <span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">properties</span> <span class="p">}</span></code></pre>
 
@@ -526,9 +565,63 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">NSString</span><span class="p">(</span><span class="nv">data</span><span class="p">:</span> <span class="k">try!</span> <span class="kt">NSJSONSerialization</span><span class="o">.</span><span class="nf">dataWithJSONObject</span><span class="p">(</span><span class="k">self</span><span class="o">.</span><span class="n">jsonObjectValue</span><span class="p">,</span> <span class="nv">options</span><span class="p">:</span> <span class="kt">NSJSONWritingOptions</span><span class="o">.</span><span class="kt">PrettyPrinted</span><span class="p">),</span> <span class="nv">encoding</span><span class="p">:</span> <span class="kt">NSASCIIStringEncoding</span><span class="p">)</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span> <span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="kt">NSString</span><span class="p">(</span><span class="nv">data</span><span class="p">:</span> <span class="k">try!</span> <span class="kt">NSJSONSerialization</span><span class="o">.</span><span class="nf">dataWithJSONObject</span><span class="p">(</span><span class="k">self</span><span class="o">.</span><span class="n">jsonObjectValue</span><span class="p">,</span> <span class="nv">options</span><span class="p">:</span> <span class="o">.</span><span class="kt">PrettyPrinted</span><span class="p">),</span> <span class="nv">encoding</span><span class="p">:</span> <span class="kt">NSUTF8StringEncoding</span><span class="p">)</span> <span class="k">as!</span> <span class="kt">String</span> <span class="p">}</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK14UsergridEntity11descriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/description" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridEntity11descriptionSS">description</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="k">var</span> <span class="nv">description</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK14UsergridEntity16debugDescriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/debugDescription" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK14UsergridEntity16debugDescriptionSS">debugDescription</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The debug description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="k">var</span> <span class="nv">debugDescription</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
 
                         </div>
                       </div>
@@ -538,20 +631,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntitycFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntitycFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
                     <a name="//apple_ref/swift/Method/init(type:name:propertyDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFMS0_FT4typeSS4nameGSqSS_12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_">init(type:name:propertyDict:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(type:name:propertyDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -559,26 +652,137 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridEntity</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>type</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The type associated with the <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>name</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional name associated with the <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>propertyDict</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional property dictionary that the <code>UsergridEntity</code> object will start out with.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> object.</p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK14UsergridEntity6entityFMS0_FT8jsonDictGVSs10DictionarySSPSs9AnyObject___GSqS0__"></a>
+                    <a name="/s:ZFC11UsergridSDK14UsergridEntity13mapCustomTypeFTSS10toSubclassMS0__T_"></a>
+                    <a name="//apple_ref/swift/Method/mapCustomType(_:toSubclass:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity13mapCustomTypeFTSS10toSubclassMS0__T_">mapCustomType(_:toSubclass:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Used for custom mapping subclasses to a given <code><a href="../Classes/Usergrid.html">Usergrid</a></code> type.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">mapCustomType</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">toSubclass</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="o">.</span><span class="k">Type</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>type</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The type of the <code>Usergrid</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>toSubclass</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The subclass <code>UsergridEntity.Type</code> to map it to.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK14UsergridEntity6entityFT8jsonDictGVs10DictionarySSPs9AnyObject___GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/entity(jsonDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity6entityFMS0_FT8jsonDictGVSs10DictionarySSPSs9AnyObject___GSqS0__">entity(jsonDict:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity6entityFT8jsonDictGVs10DictionarySSPs9AnyObject___GSqS0__">entity(jsonDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -586,26 +790,51 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>Class convenience constructor for creating <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects dynamically.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridEntity</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">entity</span><span class="p">(</span><span class="n">jsonDict</span> <span class="nv">jsonDict</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kt">UsergridEntity</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>jsonDict</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>A valid JSON dictionary which must contain at the very least a value for the <code>type</code> key.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> object provided that the <code><a href="../Classes/UsergridEntity.html#/s:vC11UsergridSDK14UsergridEntity4typeSS">type</a></code> key within the dictionay exists. Otherwise nil.</p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFC11UsergridSDK14UsergridEntity8entitiesFMS0_FT9jsonArrayGSaGVSs10DictionarySSPSs9AnyObject____GSaS0__"></a>
+                    <a name="/s:ZFC11UsergridSDK14UsergridEntity8entitiesFT9jsonArrayGSaGVs10DictionarySSPs9AnyObject____GSaS0__"></a>
                     <a name="//apple_ref/swift/Method/entities(jsonArray:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity8entitiesFMS0_FT9jsonArrayGSaGVSs10DictionarySSPSs9AnyObject____GSaS0__">entities(jsonArray:)</a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK14UsergridEntity8entitiesFT9jsonArrayGSaGVs10DictionarySSPs9AnyObject____GSaS0__">entities(jsonArray:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -613,12 +842,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Class convenience constructor for creating multiple <code>UsergridEntity</code> objects dynamically.</p>
+                        <p>Class convenience constructor for creating multiple <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects dynamically.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">entities</span><span class="p">(</span><span class="n">jsonArray</span> <span class="nv">entitiesJSONArray</span><span class="p">:</span> <span class="p">[[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt">UsergridEntity</span><span class="p">]</span></code></pre>
 
@@ -646,7 +875,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>An array of <code>UsergridEntity</code>.</p>
+                        <p>An array of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                     </section>
@@ -655,20 +884,130 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Property%20Manipulation"></a>
-                  <a name="//apple_ref/swift/Section/Property Manipulation" class="dashAnchor"></a>
-                  <a href="#/Property%20Manipulation">
-                    <h3 class="section-name">Property Manipulation</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11putPropertyFS0_FTSS5valueGSqPSs9AnyObject___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntitycFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntitycFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol initializer.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Property%20Manipulation"></a>
+                <a name="//apple_ref/swift/Section/Property Manipulation" class="dashAnchor"></a>
+                <a href="#/Property%20Manipulation">
+                  <h3 class="section-name">Property Manipulation</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity11putPropertyFTSS5valueGSqPs9AnyObject___T_"></a>
                     <a name="//apple_ref/swift/Method/putProperty(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11putPropertyFS0_FTSS5valueGSqPSs9AnyObject___T_">putProperty(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11putPropertyFTSS5valueGSqPs9AnyObject___T_">putProperty(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -681,7 +1020,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">putProperty</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">value</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">?)</span></code></pre>
 
@@ -726,9 +1065,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity13putPropertiesFS0_FGVSs10DictionarySSPSs9AnyObject__T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity13putPropertiesFGVs10DictionarySSPs9AnyObject__T_"></a>
                     <a name="//apple_ref/swift/Method/putProperties(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13putPropertiesFS0_FGVSs10DictionarySSPSs9AnyObject__T_">putProperties(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13putPropertiesFGVs10DictionarySSPs9AnyObject__T_">putProperties(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -741,7 +1080,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">putProperties</span><span class="p">(</span><span class="nv">properties</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">])</span></code></pre>
 
@@ -773,9 +1112,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity14removePropertyFS0_FSST_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity14removePropertyFSST_"></a>
                     <a name="//apple_ref/swift/Method/removeProperty(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14removePropertyFS0_FSST_">removeProperty(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14removePropertyFSST_">removeProperty(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -788,7 +1127,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">removeProperty</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
@@ -820,9 +1159,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity16removePropertiesFS0_FGSaSS_T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity16removePropertiesFGSaSS_T_"></a>
                     <a name="//apple_ref/swift/Method/removeProperties(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity16removePropertiesFS0_FGSaSS_T_">removeProperties(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity16removePropertiesFGSaSS_T_">removeProperties(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -835,7 +1174,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">removeProperties</span><span class="p">(</span><span class="nv">propertyNames</span><span class="p">:[</span><span class="kt">String</span><span class="p">])</span></code></pre>
 
@@ -867,9 +1206,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity4pushFS0_FTSS5valuePSs9AnyObject__T_"></a>
-                    <a name="//apple_ref/swift/Method/push(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4pushFS0_FTSS5valuePSs9AnyObject__T_">push(_:value:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6appendFTSS5valuePs9AnyObject__T_"></a>
+                    <a name="//apple_ref/swift/Method/append(_:value:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6appendFTSS5valuePs9AnyObject__T_">append(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -882,9 +1221,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">push</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">value</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">append</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -913,7 +1252,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The value to append.</p>
+                                  <p>The value or an array of values to append.</p>
 
                                 </div>
                               </td>
@@ -927,69 +1266,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6appendFS0_FTSS6valuesGSaPSs9AnyObject___T_"></a>
-                    <a name="//apple_ref/swift/Method/append(_:values:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6appendFS0_FTSS6valuesGSaPSs9AnyObject___T_">append(_:values:)</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Appends the given values to the end of the properties current value.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">append</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">values</span><span class="p">:[</span><span class="kt">AnyObject</span><span class="p">])</span></code></pre>
-
-                        </div>
-                      </div>
-                      <div>
-                        <h4>Parameters</h4>
-                        <table class="graybox">
-                          <tbody>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>name</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The name of the property.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>values</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The values to append.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6insertFS0_FTSS5indexSi5valuePSs9AnyObject__T_"></a>
-                    <a name="//apple_ref/swift/Method/insert(_:index:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6insertFS0_FTSS5indexSi5valuePSs9AnyObject__T_">insert(_:index:value:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6insertFTSS5valuePs9AnyObject_5indexSi_T_"></a>
+                    <a name="//apple_ref/swift/Method/insert(_:value:index:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6insertFTSS5valuePs9AnyObject_5indexSi_T_">insert(_:value:index:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1002,9 +1281,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">insert</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">index</span><span class="p">:</span><span class="kt">Int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span><span class="nv">value</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">insert</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">,</span> <span class="nv">index</span><span class="p">:</span><span class="kt">Int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -1046,7 +1325,7 @@
                               </td>
                               <td>
                                 <div>
-                                  <p>The value to insert.</p>
+                                  <p>The value or an array of values to insert.</p>
 
                                 </div>
                               </td>
@@ -1060,82 +1339,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11insertArrayFS0_FTSS5indexSi6valuesGSaPSs9AnyObject___T_"></a>
-                    <a name="//apple_ref/swift/Method/insertArray(_:index:values:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11insertArrayFS0_FTSS5indexSi6valuesGSaPSs9AnyObject___T_">insertArray(_:index:values:)</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>Inserts an array of property values at a given index within the properties current value.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">insertArray</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">index</span><span class="p">:</span><span class="kt">Int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span><span class="nv">values</span><span class="p">:[</span><span class="kt">AnyObject</span><span class="p">])</span></code></pre>
-
-                        </div>
-                      </div>
-                      <div>
-                        <h4>Parameters</h4>
-                        <table class="graybox">
-                          <tbody>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>name</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The name of the property</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>index</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The index to insert at.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                            <tr>
-                              <td>
-                                <code>
-                                <em>values</em>
-                                </code>
-                              </td>
-                              <td>
-                                <div>
-                                  <p>The values to insert.</p>
-
-                                </div>
-                              </td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity3popFS0_FSST_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity3popFSST_"></a>
                     <a name="//apple_ref/swift/Method/pop(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity3popFS0_FSST_">pop(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity3popFSST_">pop(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1148,7 +1354,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">pop</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
@@ -1180,9 +1386,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity5shiftFS0_FSST_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity5shiftFSST_"></a>
                     <a name="//apple_ref/swift/Method/shift(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity5shiftFS0_FSST_">shift(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity5shiftFSST_">shift(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1195,7 +1401,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">shift</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">)</span></code></pre>
 
@@ -1227,20 +1433,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/CRUD%20Convenience%20Methods"></a>
-                  <a name="//apple_ref/swift/Section/CRUD Convenience Methods" class="dashAnchor"></a>
-                  <a href="#/CRUD%20Convenience%20Methods">
-                    <h3 class="section-name">CRUD Convenience Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/CRUD%20Convenience%20Methods"></a>
+                <a name="//apple_ref/swift/Section/CRUD Convenience Methods" class="dashAnchor"></a>
+                <a href="#/CRUD%20Convenience%20Methods">
+                  <h3 class="section-name">CRUD Convenience Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/reload(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFTGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1248,12 +1454,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Performs a GET on the <code>UsergridEntity</code> using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Performs a GET on the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">reload</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1285,9 +1491,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6reloadFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/reload(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6reloadFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">reload(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1295,12 +1501,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Performs a GET on the <code>UsergridEntity</code>.</p>
+                        <p>Performs a GET on the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">reload</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1345,9 +1551,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/save(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">save(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFTGSqFT8responseCS_16UsergridResponse_T___T_">save(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1355,12 +1561,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Performs a PUT (or POST if no UUID is found) on the <code>UsergridEntity</code> using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Performs a PUT (or POST if no UUID is found) on the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">save</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1392,9 +1598,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/save(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">save(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity4saveFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">save(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1402,12 +1608,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Performs a PUT (or POST if no UUID is found) on the <code>UsergridEntity</code>.</p>
+                        <p>Performs a PUT (or POST if no UUID is found) on the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">save</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1452,9 +1658,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/remove(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFTGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1462,12 +1668,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Performs a DELETE on the <code>UsergridEntity</code> using the shared instance of the <code>UsergridClient</code>.</p>
+                        <p>Performs a DELETE on the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">remove</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1499,9 +1705,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity6removeFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/remove(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity6removeFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">remove(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1509,12 +1715,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Performs a DELETE on the <code>UsergridEntity</code>.</p>
+                        <p>Performs a DELETE on the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">remove</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1559,20 +1765,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Asset%20Management"></a>
-                  <a name="//apple_ref/swift/Section/Asset Management" class="dashAnchor"></a>
-                  <a href="#/Asset%20Management">
-                    <h3 class="section-name">Asset Management</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Asset%20Management"></a>
+                <a name="//apple_ref/swift/Section/Asset Management" class="dashAnchor"></a>
+                <a href="#/Asset%20Management">
+                  <h3 class="section-name">Asset Management</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS1__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqS1__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS1__5errorGSqSS__T___T_">uploadAsset(_:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqS1__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1580,12 +1786,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Uploads the given <code>UsergridAsset</code> and the data within it and creates an association between this <code>UsergridEntity</code> with the given <code>UsergridAsset</code> using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Uploads the given <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> and the data within it and creates an association between this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> with the given <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">uploadAsset</span><span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetUploadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1643,9 +1849,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/uploadAsset(_:asset:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFS0_FTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS3__T__10completionGSqFT8responseCS_16UsergridResponse5assetGSqS2__5errorGSqSS__T___T_">uploadAsset(_:asset:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity11uploadAssetFTCS_14UsergridClient5assetCS_13UsergridAsset8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS3__T__10completionGSqFT5assetGSqS2__8responseCS_16UsergridResponse_T___T_">uploadAsset(_:asset:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1653,12 +1859,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Uploads the given <code>UsergridAsset</code> and the data within it and creates an association between this <code>UsergridEntity</code> with the given <code>UsergridAsset</code>.</p>
+                        <p>Uploads the given <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> and the data within it and creates an association between this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> with the given <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">uploadAsset</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetUploadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1729,9 +1935,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS1__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1739,12 +1945,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Downloads the <code>UsergridAsset</code> that is associated with this <code>UsergridEntity</code> using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Downloads the <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> that is associated with this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">downloadAsset</span><span class="p">(</span><span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetDownloadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1802,9 +2008,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/downloadAsset(_:contentType:progress:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFS0_FTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVSs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqSS__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity13downloadAssetFTCS_14UsergridClient11contentTypeSS8progressGSqFT13bytesFinishedVs5Int6413bytesExpectedS2__T__10completionGSqFT5assetGSqCS_13UsergridAsset_5errorGSqCS_21UsergridResponseError__T___T_">downloadAsset(_:contentType:progress:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1812,12 +2018,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Downloads the <code>UsergridAsset</code> that is associated with this <code>UsergridEntity</code>.</p>
+                        <p>Downloads the <code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> that is associated with this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">downloadAsset</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">progress</span><span class="p">:</span><span class="kt">UsergridAssetRequestProgress</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridAssetDownloadCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1888,20 +2094,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Connection%20Management"></a>
-                  <a name="//apple_ref/swift/Section/Connection Management" class="dashAnchor"></a>
-                  <a href="#/Connection%20Management">
-                    <h3 class="section-name">Connection Management</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Connection%20Management"></a>
+                <a name="//apple_ref/swift/Section/Connection Management" class="dashAnchor"></a>
+                <a href="#/Connection%20Management">
+                  <h3 class="section-name">Connection Management</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:toEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:toEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFTSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:toEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1909,12 +2115,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates a relationship between this <code>UsergridEntity</code> and the given entity using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Creates a relationship between this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> and the given entity using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toEntity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -1972,9 +2178,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity7connectFTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/connect(_:relationship:toEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFS0_FTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:toEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity7connectFTCS_14UsergridClient12relationshipSS8toEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connect(_:relationship:toEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1982,12 +2188,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates a relationship between this <code>UsergridEntity</code> and the given entity.</p>
+                        <p>Creates a relationship between this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> and the given entity.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connect</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">toEntity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2058,9 +2264,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:fromEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:fromEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFTSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:fromEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2068,12 +2274,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Removes a relationship between this <code>UsergridEntity</code> and the given entity using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Removes a relationship between this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> and the given entity using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromEntity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2131,9 +2337,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity10disconnectFTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/disconnect(_:relationship:fromEntity:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFS0_FTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:fromEntity:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity10disconnectFTCS_14UsergridClient12relationshipSS10fromEntityS0_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnect(_:relationship:fromEntity:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2141,12 +2347,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Removes a relationship between this <code>UsergridEntity</code> and the given entity.</p>
+                        <p>Removes a relationship between this <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> and the given entity.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnect</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">fromEntity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -2217,9 +2423,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTOS_17UsergridDirection12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/getConnections(_:relationship:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTOS_17UsergridDirection12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:relationship:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2227,14 +2433,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the <code>UsergridEntity</code> objects, if any, which are connected via the relationship using the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Gets the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects, if any, which are connected via the relationship using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -2271,6 +2477,19 @@
                             <tr>
                               <td>
                                 <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
                                 <em>completion</em>
                                 </code>
                               </td>
@@ -2290,9 +2509,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/getConnections(_:direction:relationship:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFS0_FTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:direction:relationship:completion:)</a>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnections(_:direction:relationship:query:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity14getConnectionsFTCS_14UsergridClient9directionOS_17UsergridDirection12relationshipSS5queryGSqCS_13UsergridQuery_10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnections(_:direction:relationship:query:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -2300,14 +2519,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the <code>UsergridEntity</code> objects, if any, which are connected via the relationship.</p>
+                        <p>Gets the <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects, if any, which are connected via the relationship.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnections</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">direction</span><span class="p">:</span><span class="kt">UsergridDirection</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -2357,6 +2576,19 @@
                             <tr>
                               <td>
                                 <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
                                 <em>completion</em>
                                 </code>
                               </td>
@@ -2375,11 +2607,74 @@
                 </li>
               </ul>
             </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Helper%20methods"></a>
+                <a name="//apple_ref/swift/Section/Helper methods" class="dashAnchor"></a>
+                <a href="#/Helper%20methods">
+                  <h3 class="section-name">Helper methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK14UsergridEntity15isEqualToEntityFGSqS0__Sb"></a>
+                    <a name="//apple_ref/swift/Method/isEqualToEntity(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK14UsergridEntity15isEqualToEntityFGSqS0__Sb">isEqualToEntity(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Determines if the two <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects are equal.  i.e. they have the same non nil uuidOrName.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">isEqualToEntity</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>entity</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The entity to check.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>If the two <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects are equal.  i.e. they have the same non nil uuidOrName.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridFileMetaData.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridFileMetaData.html
index 840b241..1cc8ccf 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridFileMetaData.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridFileMetaData.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridFileMetaData" class="dashAnchor"></a>
     <a title="UsergridFileMetaData Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,23 +164,23 @@
           <section class="section">
             <h1>UsergridFileMetaData</h1>
               <div class="declaration">
-                <div class="Swift">
-                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridFileMetaData</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridFileMetaData</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span><span class="kt">NSCoding</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridFileMetaData</code> is a helper class for dealing with reading <code>UsergridEntity</code> file meta data.</p>
+            <p><code>UsergridFileMetaData</code> is a helper class for dealing with reading <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> file meta data.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -165,7 +200,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">eTag</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -192,7 +227,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">checkSum</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -219,7 +254,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">contentType</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -246,7 +281,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">contentLength</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -273,7 +308,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">lastModifiedTimeStamp</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -295,12 +330,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>NSDate</code> object corresponding to the last modified time stamp.</p>
+                        <p>The <code><a href="../Extensions/NSDate.html">NSDate</a></code> object corresponding to the last modified time stamp.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">lastModifiedDate</span><span class="p">:</span> <span class="kt">NSDate</span><span class="p">?</span></code></pre>
 
@@ -312,20 +347,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFMS0_FT16fileMetaDataJSONGVSs10DictionarySSPSs9AnyObject___S0_"></a>
+                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFT16fileMetaDataJSONGVs10DictionarySSPs9AnyObject___S0_"></a>
                     <a name="//apple_ref/swift/Method/init(fileMetaDataJSON:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFMS0_FT16fileMetaDataJSONGVSs10DictionarySSPSs9AnyObject___S0_">init(fileMetaDataJSON:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFT16fileMetaDataJSONGVs10DictionarySSPs9AnyObject___S0_">init(fileMetaDataJSON:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -333,12 +368,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridFileMetaData</code> objects.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">fileMetaDataJSON</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">])</span></code></pre>
 
@@ -366,7 +401,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridFileMetaData</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a></code>.</p>
 
                       </div>
                     </section>
@@ -374,11 +409,121 @@
                 </li>
               </ul>
             </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK20UsergridFileMetaDatacFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaDatacFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol initializer.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK20UsergridFileMetaData15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK20UsergridFileMetaData15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridQuery.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridQuery.html
index b97ba76..5b8d3e5 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridQuery.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridQuery.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridQuery" class="dashAnchor"></a>
     <a title="UsergridQuery Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,32 +164,32 @@
           <section class="section">
             <h1>UsergridQuery</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridQuery</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span><span class="kt">NSCopying</span></code></pre>
 
                 </div>
               </div>
             <p><code>UsergridQuery</code> is builder class used to construct filtered requests to Usergrid.</p>
 
-<p><code>UsergridQuery</code> objects are then passed to <code>UsergridClient</code> or <code>Usergrid</code> methods which support <code>UsergridQuery</code> as a parameter are .GET(), .PUT(), and .DELETE().</p>
+<p><code>UsergridQuery</code> objects are then passed to <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> or <code><a href="../Classes/Usergrid.html">Usergrid</a></code> methods which support <code>UsergridQuery</code> as a parameter are .GET(), .PUT(), and .DELETE().</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuerycFMS0_FTGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuerycFTGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuerycFMS0_FTGSqSS__S0_">init(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuerycFTGSqSS__S0_">init(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -162,12 +197,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Desingated initializer for <code>UsergridQuery</code> objects.</p>
+                        <p>Desingated initializer for <code><a href="../Classes/UsergridQuery.html">UsergridQuery</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="n">_</span> <span class="nv">collectionName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -195,7 +230,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridQuery</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridQuery.html">UsergridQuery</a></code>.</p>
 
                       </div>
                     </section>
@@ -204,20 +239,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/NSCopying"></a>
-                  <a name="//apple_ref/swift/Section/NSCopying" class="dashAnchor"></a>
-                  <a href="#/NSCopying">
-                    <h3 class="section-name">NSCopying</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/NSCopying"></a>
+                <a name="//apple_ref/swift/Section/NSCopying" class="dashAnchor"></a>
+                <a href="#/NSCopying">
+                  <h3 class="section-name">NSCopying</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFS0_FV10ObjectiveC6NSZonePSs9AnyObject_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFV10ObjectiveC6NSZonePs9AnyObject_"></a>
                     <a name="//apple_ref/swift/Method/copyWithZone(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFS0_FV10ObjectiveC6NSZonePSs9AnyObject_">copyWithZone(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12copyWithZoneFV10ObjectiveC6NSZonePs9AnyObject_">copyWithZone(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -230,7 +265,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">copyWithZone</span><span class="p">(</span><span class="nv">zone</span><span class="p">:</span> <span class="kt">NSZone</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">AnyObject</span></code></pre>
 
@@ -267,20 +302,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Building"></a>
-                  <a name="//apple_ref/swift/Section/Building" class="dashAnchor"></a>
-                  <a href="#/Building">
-                    <h3 class="section-name">Building</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Building"></a>
+                <a name="//apple_ref/swift/Section/Building" class="dashAnchor"></a>
+                <a href="#/Building">
+                  <h3 class="section-name">Building</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery5buildFS0_FTSb_SS"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery5buildFTSb_SS"></a>
                     <a name="//apple_ref/swift/Method/build(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5buildFS0_FTSb_SS">build(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5buildFTSb_SS">build(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -293,7 +328,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">build</span><span class="p">(</span><span class="nv">autoURLEncode</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">true</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
 
@@ -330,20 +365,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Builder%20Methods"></a>
-                  <a name="//apple_ref/swift/Section/Builder Methods" class="dashAnchor"></a>
-                  <a href="#/Builder%20Methods">
-                    <h3 class="section-name">Builder Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Builder%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Builder Methods" class="dashAnchor"></a>
+                <a href="#/Builder%20Methods">
+                  <h3 class="section-name">Builder Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery14containsStringFS0_FTSS5valueSS_DS0_"></a>
-                    <a name="//apple_ref/swift/Method/containsString(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14containsStringFS0_FTSS5valueSS_DS0_">containsString(_:value:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery8containsFTSS5valueSS_DS0_"></a>
+                    <a name="//apple_ref/swift/Method/contains(_:value:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8containsFTSS5valueSS_DS0_">contains(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -356,7 +391,72 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">contains</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">containsWord</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>term</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The term.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>value</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The value.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery14containsStringFTSS5valueSS_DS0_"></a>
+                    <a name="//apple_ref/swift/Method/containsString(_:value:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14containsStringFTSS5valueSS_DS0_">containsString(_:value:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Contains. Query: where term contains &lsquo;val%&rsquo;.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">containsString</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">containsWord</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -406,9 +506,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery12containsWordFS0_FTSS5valueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery12containsWordFTSS5valueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/containsWord(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12containsWordFS0_FTSS5valueSS_DS0_">containsWord(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery12containsWordFTSS5valueSS_DS0_">containsWord(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -421,9 +521,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">containsWord</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addRequirement</span><span class="p">(</span><span class="n">term</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">SPACE</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">CONTAINS</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">SPACE</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">APOSTROPHE</span> <span class="o">+</span> <span class="n">value</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">APOSTROPHE</span><span class="p">)</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">containsWord</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addRequirement</span><span class="p">(</span><span class="n">term</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">SPACE</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">CONTAINS</span> <span class="o">+</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">SPACE</span> <span class="o">+</span> <span class="p">((</span><span class="n">value</span><span class="o">.</span><span class="nf">isUuid</span><span class="p">())</span> <span class="p">?</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">EMPTY_STRING</span> <span class="p">:</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">APOSTROPHE</span><span class="p">)</span> <span class="o">+</span> <span class="n">value</span> <span class="o">+</span> <span class="p">((</span><span class="n">value</span><span class="o">.</span><span class="nf">isUuid</span><span class="p">())</span> <span class="p">?</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">EMPTY_STRING</span> <span class="p">:</span> <span class="kt">UsergridQuery</span><span class="o">.</span><span class="kt">APOSTROPHE</span><span class="p">))</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -471,9 +571,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery9ascendingFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery9ascendingFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/ascending(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery9ascendingFS0_FSSDS0_">ascending(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery9ascendingFSSDS0_">ascending(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -486,7 +586,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">ascending</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">asc</span><span class="p">(</span><span class="n">term</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -523,9 +623,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3ascFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3ascFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/asc(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3ascFS0_FSSDS0_">asc(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3ascFSSDS0_">asc(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -538,9 +638,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">asc</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">sort</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">sortOrder</span><span class="p">:</span> <span class="kt">UsergridQuerySortOrder</span><span class="o">.</span><span class="kt">Asc</span><span class="p">)</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">asc</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">sort</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">sortOrder</span><span class="p">:</span> <span class="o">.</span><span class="kt">Asc</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -575,9 +675,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery10descendingFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery10descendingFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/descending(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10descendingFS0_FSSDS0_">descending(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10descendingFSSDS0_">descending(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -590,7 +690,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">descending</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">desc</span><span class="p">(</span><span class="n">term</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -627,9 +727,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery4descFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery4descFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/desc(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4descFS0_FSSDS0_">desc(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4descFSSDS0_">desc(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -642,9 +742,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">desc</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">sort</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">sortOrder</span><span class="p">:</span> <span class="kt">UsergridQuerySortOrder</span><span class="o">.</span><span class="kt">Desc</span><span class="p">)</span> <span class="p">}</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">desc</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">sort</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">sortOrder</span><span class="p">:</span> <span class="o">.</span><span class="kt">Desc</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
                         </div>
                       </div>
@@ -679,9 +779,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery6filterFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery6filterFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/filter(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6filterFS0_FTSS5valuePSs9AnyObject__DS0_">filter(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6filterFTSS5valuePs9AnyObject__DS0_">filter(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -694,7 +794,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">filter</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -744,9 +844,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery6equalsFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery6equalsFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/equals(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6equalsFS0_FTSS5valuePSs9AnyObject__DS0_">equals(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6equalsFTSS5valuePs9AnyObject__DS0_">equals(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -759,7 +859,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">equals</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -809,9 +909,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2eqFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2eqFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/eq(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2eqFS0_FTSS5valuePSs9AnyObject__DS0_">eq(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2eqFTSS5valuePs9AnyObject__DS0_">eq(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -824,7 +924,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">eq</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addOperationRequirement</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span><span class="o">.</span><span class="kt">Equal</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -874,9 +974,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery11greaterThanFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery11greaterThanFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/greaterThan(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery11greaterThanFS0_FTSS5valuePSs9AnyObject__DS0_">greaterThan(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery11greaterThanFTSS5valuePs9AnyObject__DS0_">greaterThan(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -889,7 +989,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">greaterThan</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">gt</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -939,9 +1039,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2gtFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2gtFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/gt(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2gtFS0_FTSS5valuePSs9AnyObject__DS0_">gt(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2gtFTSS5valuePs9AnyObject__DS0_">gt(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -954,7 +1054,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">gt</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addOperationRequirement</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span><span class="o">.</span><span class="kt">GreaterThan</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1004,9 +1104,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/greaterThanOrEqual(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_">greaterThanOrEqual(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery18greaterThanOrEqualFTSS5valuePs9AnyObject__DS0_">greaterThanOrEqual(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1019,7 +1119,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">greaterThanOrEqual</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">gte</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1069,9 +1169,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3gteFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3gteFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/gte(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3gteFS0_FTSS5valuePSs9AnyObject__DS0_">gte(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3gteFTSS5valuePs9AnyObject__DS0_">gte(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1084,7 +1184,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">gte</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addOperationRequirement</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span><span class="o">.</span><span class="kt">GreaterThanEqualTo</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1134,9 +1234,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery8lessThanFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery8lessThanFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lessThan(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8lessThanFS0_FTSS5valuePSs9AnyObject__DS0_">lessThan(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery8lessThanFTSS5valuePs9AnyObject__DS0_">lessThan(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1149,7 +1249,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">lessThan</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">lt</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1199,9 +1299,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2ltFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2ltFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lt(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2ltFS0_FTSS5valuePSs9AnyObject__DS0_">lt(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2ltFTSS5valuePs9AnyObject__DS0_">lt(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1214,7 +1314,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">lt</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addOperationRequirement</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span><span class="o">.</span><span class="kt">LessThan</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1264,9 +1364,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lessThanOrEqual(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFS0_FTSS5valuePSs9AnyObject__DS0_">lessThanOrEqual(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery15lessThanOrEqualFTSS5valuePs9AnyObject__DS0_">lessThanOrEqual(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1279,7 +1379,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">lessThanOrEqual</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">lte</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1329,9 +1429,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery3lteFS0_FTSS5valuePSs9AnyObject__DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3lteFTSS5valuePs9AnyObject__DS0_"></a>
                     <a name="//apple_ref/swift/Method/lte(_:value:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3lteFS0_FTSS5valuePSs9AnyObject__DS0_">lte(_:value:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3lteFTSS5valuePs9AnyObject__DS0_">lte(_:value:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1344,7 +1444,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">lte</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="nf">addOperationRequirement</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span><span class="o">.</span><span class="kt">LessThanEqualTo</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="n">value</span><span class="p">)</span> <span class="p">}</span></code></pre>
 
@@ -1394,9 +1494,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery14withinLocationFS0_FTSf8latitudeSf9longitudeSf_DS0_"></a>
-                    <a name="//apple_ref/swift/Method/withinLocation(_:latitude:longitude:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14withinLocationFS0_FTSf8latitudeSf9longitudeSf_DS0_">withinLocation(_:latitude:longitude:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery14locationWithinFTSf8latitudeSf9longitudeSf_DS0_"></a>
+                    <a name="//apple_ref/swift/Method/locationWithin(_:latitude:longitude:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery14locationWithinFTSf8latitudeSf9longitudeSf_DS0_">locationWithin(_:latitude:longitude:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1409,9 +1509,9 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">withinLocation</span><span class="p">(</span><span class="nv">distance</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">latitude</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">longitude</span><span class="p">:</span> <span class="kt">Float</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">locationWithin</span><span class="p">(</span><span class="nv">distance</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">latitude</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">longitude</span><span class="p">:</span> <span class="kt">Float</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
                         </div>
                       </div>
@@ -1472,9 +1572,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2orFS0_FT_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2orFT_DS0_"></a>
                     <a name="//apple_ref/swift/Method/or()" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2orFS0_FT_DS0_">or()</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2orFT_DS0_">or()</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1482,12 +1582,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Joining operation to combine conditional queries.</p>
+                        <p>Or operation for conditional queries.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">or</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1504,9 +1604,73 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery4sortFS0_FTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3andFT_DS0_"></a>
+                    <a name="//apple_ref/swift/Method/and()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3andFT_DS0_">and()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>And operation for conditional queries.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">and</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery3notFT_DS0_"></a>
+                    <a name="//apple_ref/swift/Method/not()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery3notFT_DS0_">not()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Not operation for conditional queries.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">not</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery4sortFTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_"></a>
                     <a name="//apple_ref/swift/Method/sort(_:sortOrder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4sortFS0_FTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_">sort(_:sortOrder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4sortFTSS9sortOrderOS_22UsergridQuerySortOrder_DS0_">sort(_:sortOrder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1519,7 +1683,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">sort</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">sortOrder</span><span class="p">:</span> <span class="kt">UsergridQuerySortOrder</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1569,9 +1733,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery10collectionFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery10collectionFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/collection(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10collectionFS0_FSSDS0_">collection(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10collectionFSSDS0_">collection(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1584,7 +1748,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">collection</span><span class="p">(</span><span class="nv">collectionName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1621,9 +1785,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery5limitFS0_FSiDS0_"></a>
-                    <a name="//apple_ref/swift/Method/limit(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5limitFS0_FSiDS0_">limit(_:)</a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery4typeFSSDS0_"></a>
+                    <a name="//apple_ref/swift/Method/type(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery4typeFSSDS0_">type(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1631,12 +1795,64 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Sets the limit on the query.</p>
+                        <p>Sets the collection name.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">type</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>type</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The new collection name.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery5limitFSiDS0_"></a>
+                    <a name="//apple_ref/swift/Method/limit(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery5limitFSiDS0_">limit(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Sets the limit on the query.  Default limit is 10.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">limit</span><span class="p">(</span><span class="nv">limit</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1673,9 +1889,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery2qlFS0_FSSDS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery2qlFSSDS0_"></a>
                     <a name="//apple_ref/swift/Method/ql(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2qlFS0_FSSDS0_">ql(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery2qlFSSDS0_">ql(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1688,7 +1904,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">ql</span><span class="p">(</span><span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1725,9 +1941,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery6cursorFS0_FGSqSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery6cursorFGSqSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/cursor(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6cursorFS0_FGSqSS_DS0_">cursor(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery6cursorFGSqSS_DS0_">cursor(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1740,7 +1956,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">cursor</span><span class="p">(</span><span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1777,9 +1993,61 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery7urlTermFS0_FTSS11equalsValueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery10fromStringFGSqSS_DS0_"></a>
+                    <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery10fromStringFGSqSS_DS0_">fromString(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A special builder property that allows you to input a pre-defined query string. All builder properties will be ignored when this property is defined.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">fromString</span><span class="p">(</span><span class="nv">value</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>value</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The pre-defined query string.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p><code>Self</code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery7urlTermFTSS11equalsValueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/urlTerm(_:equalsValue:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery7urlTermFS0_FTSS11equalsValueSS_DS0_">urlTerm(_:equalsValue:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery7urlTermFTSS11equalsValueSS_DS0_">urlTerm(_:equalsValue:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1792,7 +2060,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">urlTerm</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">equalsValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1842,9 +2110,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_"></a>
                     <a name="//apple_ref/swift/Method/addOperationRequirement(_:operation:stringValue:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_">addOperationRequirement(_:operation:stringValue:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator11stringValueSS_DS0_">addOperationRequirement(_:operation:stringValue:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1857,7 +2125,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">addOperationRequirement</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span> <span class="kt">UsergridQueryOperator</span><span class="p">,</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -1920,9 +2188,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_"></a>
+                    <a name="/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_"></a>
                     <a name="//apple_ref/swift/Method/addOperationRequirement(_:operation:intValue:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFS0_FTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_">addOperationRequirement(_:operation:intValue:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK13UsergridQuery23addOperationRequirementFTSS9operationOS_21UsergridQueryOperator8intValueSi_DS0_">addOperationRequirement(_:operation:intValue:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -1935,7 +2203,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">addOperationRequirement</span><span class="p">(</span><span class="nv">term</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">operation</span><span class="p">:</span> <span class="kt">UsergridQueryOperator</span><span class="p">,</span> <span class="nv">intValue</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
 
@@ -2000,8 +2268,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridRequest.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridRequest.html
new file mode 100644
index 0000000..0405ff5
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridRequest.html
@@ -0,0 +1,619 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>UsergridRequest Class Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Class/UsergridRequest" class="dashAnchor"></a>
+    <a title="UsergridRequest Class Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        UsergridRequest Class Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>UsergridRequest</h1>
+              <div class="declaration">
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridRequest</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+
+                </div>
+              </div>
+            <p>The UsergridRequest class incapsulates the properties that all requests made by the SDK have in common.  </p>
+
+<p>This class is also functions to create <code>NSURLRequest</code> objects based on the properties of the class.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest6methodOS_18UsergridHttpMethod"></a>
+                    <a name="//apple_ref/swift/Property/method" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest6methodOS_18UsergridHttpMethod">method</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The HTTP method.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">method</span><span class="p">:</span> <span class="kt">UsergridHttpMethod</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest7baseUrlSS"></a>
+                    <a name="//apple_ref/swift/Property/baseUrl" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest7baseUrlSS">baseUrl</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The base URL.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">baseUrl</span><span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest5pathsGSqGSaSS__"></a>
+                    <a name="//apple_ref/swift/Property/paths" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest5pathsGSqGSaSS__">paths</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The paths to append to the base URL.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">paths</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest5queryGSqCS_13UsergridQuery_"></a>
+                    <a name="//apple_ref/swift/Property/query" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest5queryGSqCS_13UsergridQuery_">query</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The query to append to the URL.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest4authGSqCS_12UsergridAuth_"></a>
+                    <a name="//apple_ref/swift/Property/auth" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest4authGSqCS_12UsergridAuth_">auth</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The auth that will be used.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">auth</span><span class="p">:</span> <span class="kt">UsergridAuth</span><span class="p">?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest7headersGSqGVs10DictionarySSSS__"></a>
+                    <a name="//apple_ref/swift/Property/headers" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest7headersGSqGVs10DictionarySSSS__">headers</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The headers to add to the request.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">headers</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">String</span><span class="p">]?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest8jsonBodyGSqPs9AnyObject__"></a>
+                    <a name="//apple_ref/swift/Property/jsonBody" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest8jsonBodyGSqPs9AnyObject__">jsonBody</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The JSON body that will be set on the request.  Can be either a valid JSON object or NSData.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">jsonBody</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK15UsergridRequest11queryParamsGSqGVs10DictionarySSSS__"></a>
+                    <a name="//apple_ref/swift/Property/queryParams" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK15UsergridRequest11queryParamsGSqGVs10DictionarySSSS__">queryParams</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The query params that will be set on the request.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">queryParams</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">String</span><span class="p">]?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK15UsergridRequestcFT6methodOS_18UsergridHttpMethod7baseUrlSS5pathsGSqGSaSS__5queryGSqCS_13UsergridQuery_4authGSqCS_12UsergridAuth_7headersGSqGVs10DictionarySSSS__8jsonBodyGSqPs9AnyObject__11queryParamsGSqGS4_SSSS___S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(method:baseUrl:paths:query:auth:headers:jsonBody:queryParams:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridRequestcFT6methodOS_18UsergridHttpMethod7baseUrlSS5pathsGSqGSaSS__5queryGSqCS_13UsergridQuery_4authGSqCS_12UsergridAuth_7headersGSqGVs10DictionarySSSS__8jsonBodyGSqPs9AnyObject__11queryParamsGSqGS4_SSSS___S0_">init(method:baseUrl:paths:query:auth:headers:jsonBody:queryParams:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The designated initializer for <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">method</span><span class="p">:</span><span class="kt">UsergridHttpMethod</span><span class="p">,</span>
+        <span class="nv">baseUrl</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span>
+        <span class="nv">paths</span><span class="p">:[</span><span class="kt">String</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+        <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+        <span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridAuth</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+        <span class="nv">headers</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">String</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+        <span class="nv">jsonBody</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
+        <span class="nv">queryParams</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">String</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>method</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The HTTP method.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>baseUrl</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The base URL.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>paths</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional paths to append to the base URL.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>query</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query to append to the URL.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>auth</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional <code>UsergridAuth</code> that will be used in the Authorization header.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>headers</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional headers.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>jsonBody</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional JSON body. Can be either a valid JSON object or NSData.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>queryParams</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional query params to be appended to the request url.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridRequest.html">UsergridRequest</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
+                <a href="#/Instance%20Methods">
+                  <h3 class="section-name">Instance Methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK15UsergridRequest17buildNSURLRequestFT_CSo12NSURLRequest"></a>
+                    <a name="//apple_ref/swift/Method/buildNSURLRequest()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK15UsergridRequest17buildNSURLRequestFT_CSo12NSURLRequest">buildNSURLRequest()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Constructs a <code>NSURLRequest</code> object with this objects instance properties.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">buildNSURLRequest</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">NSURLRequest</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>An initialized and configured <code>NSURLRequest</code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponse.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponse.html
index afc0714..6ff0433 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponse.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponse.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridResponse" class="dashAnchor"></a>
     <a title="UsergridResponse Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,27 +164,27 @@
           <section class="section">
             <h1>UsergridResponse</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridResponse</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
 
                 </div>
               </div>
             <p><code>UsergridResponse</code> is the core class that handles both successful and unsuccessful HTTP responses from Usergrid. </p>
 
-<p>If a request is successful, any entities returned in the response will be automatically parsed into <code>UsergridEntity</code> objects and pushed to the <code>entities</code> property.</p>
+<p>If a request is successful, any entities returned in the response will be automatically parsed into <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects and pushed to the <code>entities</code> property.</p>
 
-<p>If a request fails, the <code>errorName</code> and <code>errorDescription</code> will contain information about the problem encountered.</p>
+<p>If a request fails, the <code>UsergridResponseError.error</code> property will contain information about the problem encountered.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -169,7 +204,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">weak</span> <span class="k">var</span> <span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">?</span></code></pre>
 
@@ -181,9 +216,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVSs10DictionarySSPSs9AnyObject___"></a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVs10DictionarySSPs9AnyObject___"></a>
                     <a name="//apple_ref/swift/Property/responseJSON" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVSs10DictionarySSPSs9AnyObject___">responseJSON</a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse12responseJSONGSqGVs10DictionarySSPs9AnyObject___">responseJSON</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -196,7 +231,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">responseJSON</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]?</span></code></pre>
 
@@ -223,7 +258,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">query</span><span class="p">:</span> <span class="kt">UsergridQuery</span><span class="p">?</span></code></pre>
 
@@ -250,7 +285,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">cursor</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -277,7 +312,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">entities</span><span class="p">:</span> <span class="p">[</span><span class="kt">UsergridEntity</span><span class="p">]?</span></code></pre>
 
@@ -289,9 +324,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse7headersGSqGVSs10DictionarySSSS__"></a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse7headersGSqGVs10DictionarySSSS__"></a>
                     <a name="//apple_ref/swift/Property/headers" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse7headersGSqGVSs10DictionarySSSS__">headers</a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse7headersGSqGVs10DictionarySSSS__">headers</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -304,7 +339,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">headers</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">:</span><span class="kt">String</span><span class="p">]?</span></code></pre>
 
@@ -331,7 +366,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">statusCode</span><span class="p">:</span> <span class="kt">Int</span><span class="p">?</span></code></pre>
 
@@ -343,9 +378,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse9errorNameGSqSS_"></a>
-                    <a name="//apple_ref/swift/Property/errorName" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse9errorNameGSqSS_">errorName</a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse5errorGSqCS_21UsergridResponseError_"></a>
+                    <a name="//apple_ref/swift/Property/error" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse5errorGSqCS_21UsergridResponseError_">error</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -353,14 +388,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The error&rsquo;s name.</p>
+                        <p>The error object containing error information if one occurred.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">errorName</span> <span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?</span></code></pre>
 
                         </div>
                       </div>
@@ -370,9 +405,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse16errorDescriptionGSqSS_"></a>
-                    <a name="//apple_ref/swift/Property/errorDescription" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse16errorDescriptionGSqSS_">errorDescription</a>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse2okSb"></a>
+                    <a name="//apple_ref/swift/Property/ok" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse2okSb">ok</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -380,41 +415,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The error&rsquo;s description.</p>
+                        <p>Returns true if the HTTP status code from the response is less than 400.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">errorDescription</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
-
-                        </div>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
-                    <a name="/s:vC11UsergridSDK16UsergridResponse9exceptionGSqSS_"></a>
-                    <a name="//apple_ref/swift/Property/exception" class="dashAnchor"></a>
-                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse9exceptionGSqSS_">exception</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>The exception.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">internal(set)</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">exception</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">ok</span> <span class="p">:</span> <span class="kt">Bool</span></code></pre>
 
                         </div>
                       </div>
@@ -434,12 +442,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The count of <code>entities</code>.</p>
+                        <p>The count of <code><a href="../Classes/UsergridResponse.html#/s:vC11UsergridSDK16UsergridResponse8entitiesGSqGSaCS_14UsergridEntity__">entities</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">entities</span><span class="p">?</span><span class="o">.</span><span class="n">count</span> <span class="p">??</span> <span class="mi">0</span> <span class="p">}</span></code></pre>
 
@@ -461,12 +469,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The first entity in <code>entities</code>.</p>
+                        <p>The first entity in <code><a href="../Classes/UsergridResponse.html#/s:vC11UsergridSDK16UsergridResponse8entitiesGSqGSaCS_14UsergridEntity__">entities</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">first</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">entities</span><span class="p">?</span><span class="o">.</span><span class="n">first</span> <span class="p">}</span></code></pre>
 
@@ -488,12 +496,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The last entity in <code>entities</code>.</p>
+                        <p>The last entity in <code><a href="../Classes/UsergridResponse.html#/s:vC11UsergridSDK16UsergridResponse8entitiesGSqGSaCS_14UsergridEntity__">entities</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">last</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">entities</span><span class="p">?</span><span class="o">.</span><span class="n">last</span> <span class="p">}</span></code></pre>
 
@@ -515,12 +523,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The first entity in <code>entities</code>.</p>
+                        <p>The first entity in <code><a href="../Classes/UsergridResponse.html#/s:vC11UsergridSDK16UsergridResponse8entitiesGSqGSaCS_14UsergridEntity__">entities</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">entity</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">first</span> <span class="p">}</span></code></pre>
 
@@ -542,12 +550,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridUser</code> entity.</p>
+                        <p>The <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> entity.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">user</span><span class="p">:</span> <span class="kt">UsergridUser</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">entities</span><span class="p">?</span><span class="o">.</span><span class="n">first</span> <span class="k">as?</span> <span class="kt">UsergridUser</span> <span class="p">}</span></code></pre>
 
@@ -569,12 +577,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>An array of <code>UsergridUser</code> entities.</p>
+                        <p>An array of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> entities.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">users</span><span class="p">:</span> <span class="p">[</span><span class="kt">UsergridUser</span><span class="p">]?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">entities</span> <span class="k">as?</span> <span class="p">[</span><span class="kt">UsergridUser</span><span class="p">]</span> <span class="p">}</span></code></pre>
 
@@ -601,7 +609,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">hasNextPage</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">cursor</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">}</span></code></pre>
 
@@ -610,23 +618,104 @@
                     </section>
                   </div>
                 </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse11stringValueSS"></a>
+                    <a name="//apple_ref/swift/Property/stringValue" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse11stringValueSS">stringValue</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The string value.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse11descriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/description" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse11descriptionSS">description</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="k">var</span> <span class="nv">description</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK16UsergridResponse16debugDescriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/debugDescription" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK16UsergridResponse16debugDescriptionSS">debugDescription</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The debug description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="k">var</span> <span class="nv">debugDescription</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_9errorNameGSqSS_16errorDescriptionGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_9errorNameSS16errorDescriptionSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(client:errorName:errorDescription:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_9errorNameGSqSS_16errorDescriptionGSqSS__S0_">init(client:errorName:errorDescription:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_9errorNameSS16errorDescriptionSS_S0_">init(client:errorName:errorDescription:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -634,16 +723,16 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridResponse</code> objects that contain errors.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridResponse.html">UsergridResponse</a></code> objects that contain errors.</p>
 
 <p>These types of responses are usually created because request conditions are not met.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">?,</span> <span class="nv">errorName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">errorDescription</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">?,</span> <span class="nv">errorName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">errorDescription</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -695,7 +784,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridResponse</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridResponse.html">UsergridResponse</a></code>.</p>
 
                       </div>
                     </section>
@@ -704,9 +793,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(client:data:response:error:query:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFMS0_FT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_">init(client:data:response:error:query:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponsecFT6clientGSqCS_14UsergridClient_4dataGSqCSo6NSData_8responseGSqCSo17NSHTTPURLResponse_5errorGSqCSo7NSError_5queryGSqCS_13UsergridQuery__S0_">init(client:data:response:error:query:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -714,12 +803,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridResponse</code> objects finished but still may contain errors.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridResponse.html">UsergridResponse</a></code> objects finished but still may contain errors.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">?,</span> <span class="nv">data</span><span class="p">:</span><span class="kt">NSData</span><span class="p">?,</span> <span class="nv">response</span><span class="p">:</span><span class="kt">NSHTTPURLResponse</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span><span class="kt">NSError</span><span class="p">?,</span> <span class="nv">query</span><span class="p">:</span><span class="kt">UsergridQuery</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -799,7 +888,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridResponse</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridResponse.html">UsergridResponse</a></code>.</p>
 
                       </div>
                     </section>
@@ -808,20 +897,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Methods"></a>
-                  <a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
-                  <a href="#/Instance%20Methods">
-                    <h3 class="section-name">Instance Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
+                <a href="#/Instance%20Methods">
+                  <h3 class="section-name">Instance Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridResponse12loadNextPageFS0_FFT8responseS0__T_T_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridResponse12loadNextPageFFT8responseS0__T_T_"></a>
                     <a name="//apple_ref/swift/Method/loadNextPage(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponse12loadNextPageFS0_FFT8responseS0__T_T_">loadNextPage(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridResponse12loadNextPageFFT8responseS0__T_T_">loadNextPage(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -829,14 +918,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Attempts to load the next page of <code>UsergridEntity</code> objects. </p>
+                        <p>Attempts to load the next page of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects. </p>
 
-<p>This requires a <code>cursor</code> to be valid as well as a <code>path</code> key within the response JSON.</p>
+<p>This requires a <code><a href="../Classes/UsergridResponse.html#/s:vC11UsergridSDK16UsergridResponse6cursorGSqSS_">cursor</a></code> to be valid as well as a <code>path</code> key within the response JSON.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">loadNextPage</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">)</span></code></pre>
 
@@ -870,8 +959,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponseError.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponseError.html
new file mode 100644
index 0000000..46fd05a
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridResponseError.html
@@ -0,0 +1,473 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>UsergridResponseError Class Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Class/UsergridResponseError" class="dashAnchor"></a>
+    <a title="UsergridResponseError Class Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        UsergridResponseError Class Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>UsergridResponseError</h1>
+              <div class="declaration">
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridResponseError</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
+
+                </div>
+              </div>
+            <p>A standard error object that contains details about a request failure.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK21UsergridResponseError9errorNameSS"></a>
+                    <a name="//apple_ref/swift/Property/errorName" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK21UsergridResponseError9errorNameSS">errorName</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The error&rsquo;s name.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">errorName</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK21UsergridResponseError16errorDescriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/errorDescription" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK21UsergridResponseError16errorDescriptionSS">errorDescription</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The error&rsquo;s description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">errorDescription</span><span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK21UsergridResponseError9exceptionGSqSS_"></a>
+                    <a name="//apple_ref/swift/Property/exception" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK21UsergridResponseError9exceptionGSqSS_">exception</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The exception.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">exception</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK21UsergridResponseError11descriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/description" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK21UsergridResponseError11descriptionSS">description</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="k">var</span> <span class="nv">description</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vC11UsergridSDK21UsergridResponseError16debugDescriptionSS"></a>
+                    <a name="//apple_ref/swift/Property/debugDescription" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK21UsergridResponseError16debugDescriptionSS">debugDescription</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The debug description.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="k">var</span> <span class="nv">debugDescription</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK21UsergridResponseErrorcFT9errorNameSS16errorDescriptionSS9exceptionGSqSS__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(errorName:errorDescription:exception:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK21UsergridResponseErrorcFT9errorNameSS16errorDescriptionSS9exceptionGSqSS__S0_">init(errorName:errorDescription:exception:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Designated initializer for <code><a href="../Classes/UsergridResponseError.html">UsergridResponseError</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">errorName</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">errorDescription</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">exception</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>errorName</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The error&rsquo;s name.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>errorDescription</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The error&rsquo;s description.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>exception</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The exception.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridResponseError.html">UsergridResponseError</a></code></p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK21UsergridResponseErrorcFT14jsonDictionaryGVs10DictionarySSPs9AnyObject___GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(jsonDictionary:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK21UsergridResponseErrorcFT14jsonDictionaryGVs10DictionarySSPs9AnyObject___GSqS0__">init(jsonDictionary:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridResponseError.html">UsergridResponseError</a></code> that determines if the given <code>jsonDictionary</code> contains an error.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">?(</span><span class="nv">jsonDictionary</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">])</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>jsonDictionary</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The JSON dictionary that may contain error information.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridResponseError.html">UsergridResponseError</a></code> if the JSON dictionary did indeed contain error information.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUser.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUser.html
index 5526b15..aa93547 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUser.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUser.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridUser" class="dashAnchor"></a>
     <a title="UsergridUser Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridUser</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridUser</span> <span class="p">:</span> <span class="kt">UsergridEntity</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridUser</code> is a special subclass of <code>UsergridEntity</code> that supports functions and properties unique to users.</p>
+            <p><code>UsergridUser</code> is a special subclass of <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> that supports functions and properties unique to users.</p>
 
           </section>
           <section class="section task-group-section">
@@ -143,9 +178,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:sC11UsergridSDK12UsergridUser9subscriptFSSGSqPSs9AnyObject__"></a>
+                    <a name="/s:iC11UsergridSDK12UsergridUser9subscriptFSSGSqPs9AnyObject__"></a>
                     <a name="//apple_ref/swift/Method/subscript(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:sC11UsergridSDK12UsergridUser9subscriptFSSGSqPSs9AnyObject__">subscript(_:)</a>
+                    <a class="token" href="#/s:iC11UsergridSDK12UsergridUser9subscriptFSSGSqPs9AnyObject__">subscript(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -153,13 +188,17 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Subscript for the <code>UsergridUser</code> class.</p>
+                        <p>Subscript for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> class.</p>
 
-<ul>
-<li><p>Example usage:
+<div class="aside aside-warning">
+    <p class="aside-title">Warning</p>
+    <p>When setting a properties value must be a valid JSON object.</p>
+
+</div>
+
+<p><li><p>Example usage:
 &ldquo;`
-let someName = usergridUser[<q>name</q>]</p></li>
-</ul>
+let someName = usergridUser[<q>name</q>]</p></li></p>
 
 <p>usergridUser[<q>name</q>] = someName
 &rdquo;`</p>
@@ -167,7 +206,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="nf">subscript</span><span class="p">(</span><span class="nv">propertyName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">AnyObject</span><span class="p">?</span></code></pre>
 
@@ -179,13 +218,13 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -200,12 +239,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridUserAuth</code> object if this user was authenticated.</p>
+                        <p>The <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> object if this user was authenticated.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">auth</span><span class="p">:</span> <span class="kt">UsergridUserAuth</span><span class="p">?</span></code></pre>
 
@@ -227,14 +266,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property helper method for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Name</code>.</p>
+                        <p>Property helper method for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties4NameFMS0_S0_">UsergridUserProperties.Name</a></code>.</p>
 
-<p>Unlike <code>UsergridEntity</code> objects, <code>UsergridUser</code>&rsquo;s can change their name property which is why we provide a getter here.</p>
+<p>Unlike <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> objects, <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>&rsquo;s can change their name property which is why we provide a getter here.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -256,12 +295,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Username</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties8UsernameFMS0_S0_">UsergridUserProperties.Username</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">username</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -283,12 +322,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Password</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties8PasswordFMS0_S0_">UsergridUserProperties.Password</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">password</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -310,12 +349,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Email</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties5EmailFMS0_S0_">UsergridUserProperties.Email</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">email</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -337,12 +376,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Age</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties3AgeFMS0_S0_">UsergridUserProperties.Age</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">age</span><span class="p">:</span> <span class="kt">NSNumber</span><span class="p">?</span></code></pre>
 
@@ -354,6 +393,33 @@
                 <li class="item">
                   <div>
                     <code>
+                    <a name="/s:vC11UsergridSDK12UsergridUser15usernameOrEmailGSqSS_"></a>
+                    <a name="//apple_ref/swift/Property/usernameOrEmail" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vC11UsergridSDK12UsergridUser15usernameOrEmailGSqSS_">usernameOrEmail</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Property helper method to get the username or email of the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">usernameOrEmail</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">username</span> <span class="p">??</span> <span class="k">self</span><span class="o">.</span><span class="n">email</span> <span class="p">}</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
                     <a name="/s:vC11UsergridSDK12UsergridUser9activatedSb"></a>
                     <a name="//apple_ref/swift/Property/activated" class="dashAnchor"></a>
                     <a class="token" href="#/s:vC11UsergridSDK12UsergridUser9activatedSb">activated</a>
@@ -364,14 +430,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Activated</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties9ActivatedFMS0_S0_">UsergridUserProperties.Activated</a></code>.</p>
 
 <p>Indicates whether the user account has been activated or not.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">activated</span><span class="p">:</span> <span class="kt">Bool</span></code></pre>
 
@@ -393,12 +459,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Disabled</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties8DisabledFMS0_S0_">UsergridUserProperties.Disabled</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">disabled</span><span class="p">:</span> <span class="kt">Bool</span></code></pre>
 
@@ -420,14 +486,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Property getter and setter helpers for the <code>UsergridUser</code> objects <code>UsergridUserProperties.Picture</code>.</p>
+                        <p>Property getter and setter helpers for the <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects <code><a href="../Enums/UsergridUserProperties.html#/s:FO11UsergridSDK22UsergridUserProperties7PictureFMS0_S0_">UsergridUserProperties.Picture</a></code>.</p>
 
 <p>URL path to user’s profile picture. Defaults to Gravatar for email address.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">picture</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
 
@@ -454,7 +520,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">uuidOrUsername</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">return</span> <span class="k">self</span><span class="o">.</span><span class="n">uuid</span> <span class="p">??</span> <span class="k">self</span><span class="o">.</span><span class="n">username</span> <span class="p">}</span></code></pre>
 
@@ -466,20 +532,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameGSqSS__S0_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS__S0_"></a>
                     <a name="//apple_ref/swift/Method/init(name:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameGSqSS__S0_">init(name:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS__S0_">init(name:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -487,12 +553,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridUser</code> objects.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -520,7 +586,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridUser</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
 
                       </div>
                     </section>
@@ -529,9 +595,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_"></a>
-                    <a name="//apple_ref/swift/Method/init(name:propertyDict:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFMS0_FT4nameSS12propertyDictGSqGVSs10DictionarySSPSs9AnyObject____S0_">init(name:propertyDict:)</a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(type:name:propertyDict:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4typeSS4nameGSqSS_12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(type:name:propertyDict:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -539,12 +605,90 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridUser</code> objects.</p>
+                        <p>The required public initializer for <code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> subclasses.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">propertyDict</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">AnyObject</span><span class="p">]?)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>type</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The type associated with the <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>name</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional name associated with the <code>UsergridEntity</code> object.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>propertyDict</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional property dictionary that the <code>UsergridEntity</code> object will start out with.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameSS12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(name:propertyDict:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameSS12propertyDictGSqGVs10DictionarySSPs9AnyObject____S0_">init(name:propertyDict:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Designated initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span><span class="nv">propertyDict</span><span class="p">:[</span><span class="kt">String</span><span class="p">:</span><span class="kt">AnyObject</span><span class="p">]?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
@@ -585,7 +729,384 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridUser</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameSS5emailSS8passwordGSqSS__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(name:email:password:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameSS5emailSS8passwordGSqSS__S0_">init(name:email:password:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">email</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>name</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The name of the user.  Note this is different from the <code>username</code> property.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>email</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The user&rsquo;s email.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>password</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional user&rsquo;s password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT5emailSS8passwordGSqSS__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(email:password:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT5emailSS8passwordGSqSS__S0_">init(email:password:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">email</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>email</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The user&rsquo;s email.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>password</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional user&rsquo;s password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameSS8usernameSS8passwordGSqSS__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(name:username:password:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameSS8usernameSS8passwordGSqSS__S0_">init(name:username:password:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>name</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The name of the user.  Note this is different from the <code>username</code> property.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>username</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The username of the user.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>password</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional user&rsquo;s password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT8usernameSS8passwordGSqSS__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(username:password:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT8usernameSS8passwordGSqSS__S0_">init(username:password:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>username</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The username of the user.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>password</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional user&rsquo;s password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS_5emailGSqSS_8usernameGSqSS_8passwordGSqSS__S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(name:email:username:password:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT4nameGSqSS_5emailGSqSS_8usernameGSqSS_8passwordGSqSS__S0_">init(name:email:username:password:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Convenience initializer for <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">email</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>name</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional name of the user.  Note this is different from the <code>username</code> property.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>email</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional user&rsquo;s email.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>username</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional username of the user.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>password</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional user&rsquo;s password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new instance of <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
 
                       </div>
                     </section>
@@ -594,20 +1115,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Methods"></a>
-                  <a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
-                  <a href="#/Instance%20Methods">
-                    <h3 class="section-name">Instance Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6createFS0_FGSqFT8responseCS_16UsergridResponse_T__T_"></a>
-                    <a name="//apple_ref/swift/Method/create(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFS0_FGSqFT8responseCS_16UsergridResponse_T__T_">create(_:)</a>
+                    <a name="/s:FC11UsergridSDK12UsergridUsercFT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUsercFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -615,14 +1136,294 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates the user object in Usergrid if the user does not already exist with the shared instance of <code>UsergridClient</code>.</p>
+                        <p>NSCoding protocol initializer.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">create</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser15encodeWithCoderFCSo7NSCoderT_"></a>
+                    <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>NSCoding protocol encoder.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">override</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Class%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Class Methods" class="dashAnchor"></a>
+                <a href="#/Class%20Methods">
+                  <h3 class="section-name">Class Methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_"></a>
+                    <a name="//apple_ref/swift/Method/checkAvailable(_:username:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_">checkAvailable(_:username:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Checks the given email and/or username availablity for new <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">checkAvailable</span><span class="p">(</span><span class="nv">email</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserAvailabilityCompletion</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>email</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional email address.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>username</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional username.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTCS_14UsergridClient5emailGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_"></a>
+                    <a name="//apple_ref/swift/Method/checkAvailable(_:email:username:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFC11UsergridSDK12UsergridUser14checkAvailableFTCS_14UsergridClient5emailGSqSS_8usernameGSqSS_10completionFT5errorGSqCS_21UsergridResponseError_9availableSb_T__T_">checkAvailable(_:email:username:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Checks the given email and/or username availablity for new <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> objects using with the given <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">checkAvailable</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">email</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">?,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserAvailabilityCompletion</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The client to use for checking availability.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>email</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional email address.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>username</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional username.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/Instance%20Methods"></a>
+                <a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
+                <a href="#/Instance%20Methods">
+                  <h3 class="section-name">Instance Methods</h3>
+                </a>
+              </div>
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6createFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/create(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFTGSqFT8responseCS_16UsergridResponse_T___T_">create(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Creates the user object in Usergrid if the user does not already exist with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">create</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -652,9 +1453,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6createFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6createFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
                     <a name="//apple_ref/swift/Method/create(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">create(_:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6createFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">create(_:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -662,14 +1463,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Creates the user object in Usergrid if the user does not already exist with the given <code>UsergridClient</code>.</p>
+                        <p>Creates the user object in Usergrid if the user does not already exist with the given <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">create</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">create</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -712,9 +1513,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFS0_FTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/login(_:password:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFS0_FTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqSS__T___T_">login(_:password:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFTSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">login(_:password:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -722,16 +1523,16 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates the specified user using the provided username and password with the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Authenticates the specified user using the provided username and password with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
-<p>While functionally similar to <code>UsergridClient.authenticateUser(auth)</code>, this method does not automatically assign this user to <code>UsergridClient.currentUser</code>:</p>
+<p>While functionally similar to <code>UsergridClient.authenticateUser(auth)</code>, this method does not automatically assign this user to <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">UsergridClient.currentUser</a></code>:</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">login</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">login</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -787,9 +1588,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFS0_FTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqSS__T___T_"></a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser5loginFTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
                     <a name="//apple_ref/swift/Method/login(_:username:password:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFS0_FTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqSS__T___T_">login(_:username:password:completion:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser5loginFTCS_14UsergridClient8usernameSS8passwordSS10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">login(_:username:password:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -797,16 +1598,16 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Authenticates the specified user using the provided username and password with the shared instance of <code>UsergridClient</code>.</p>
+                        <p>Authenticates the specified user using the provided username and password.</p>
 
-<p>While functionally similar to <code>UsergridClient.authenticateUser(auth)</code>, this method does not automatically assign this user to <code>UsergridClient.currentUser</code>:</p>
+<p>While functionally similar to <code>UsergridClient.authenticateUser(auth)</code>, this method does not automatically assign this user to <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">UsergridClient.currentUser</a></code>:</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">login</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">login</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -875,9 +1676,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFS0_FGSqFT8responseCS_16UsergridResponse_T__T_"></a>
-                    <a name="//apple_ref/swift/Method/logout(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFS0_FGSqFT8responseCS_16UsergridResponse_T__T_">logout(_:)</a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser13resetPasswordFTSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/resetPassword(_:new:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser13resetPasswordFTSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:new:completion:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -885,14 +1686,173 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Invalidates the user token locally and remotely.</p>
+                        <p>Changes the User&rsquo;s current password with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logout</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">resetPassword</span><span class="p">(</span><span class="nv">old</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">new</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserResetPasswordCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>old</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The old password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>new</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The new password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser13resetPasswordFTCS_14UsergridClient3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/resetPassword(_:old:new:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser13resetPasswordFTCS_14UsergridClient3oldSS3newSS10completionGSqFT5errorGSqCS_21UsergridResponseError_10didSucceedSb_T___T_">resetPassword(_:old:new:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Changes the User&rsquo;s current password with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">resetPassword</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">old</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">new</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridUserResetPasswordCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The client to use for resetting the password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>old</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The old password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>new</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The new password.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser14reauthenticateFTGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="//apple_ref/swift/Method/reauthenticate(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser14reauthenticateFTGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">reauthenticate(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Attmepts to reauthenticate using the user&rsquo;s <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> instance property with the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">reauthenticate</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -922,9 +1882,69 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
-                    <a name="//apple_ref/swift/Method/logout(_:completion:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFS0_FTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:completion:)</a>
+                    <a name="/s:FC11UsergridSDK12UsergridUser14reauthenticateFTCS_14UsergridClient10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_"></a>
+                    <a name="//apple_ref/swift/Method/reauthenticate(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser14reauthenticateFTCS_14UsergridClient10completionGSqFT4authGSqCS_16UsergridUserAuth_4userGSqS0__5errorGSqCS_21UsergridResponseError__T___T_">reauthenticate(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Attmepts to reauthenticate using the user&rsquo;s <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> instance property.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">reauthenticate</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt">UsergridUserAuthCompletionBlock</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The client to use for reauthentication.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/logout(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFTGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -937,9 +1957,56 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logout</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?)</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logout</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser6logoutFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/logout(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser6logoutFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">logout(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Invalidates the user token locally and remotely.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">logout</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span> <span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
@@ -979,13 +2046,386 @@
                     </section>
                   </div>
                 </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/connectToDevice(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connectToDevice(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A special convenience function that connects a <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> to this <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connectToDevice</span><span class="p">(</span><span class="nv">device</span><span class="p">:</span><span class="kt">UsergridDevice</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>device</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The device to connect to.  If nil it will use the <code>UsergridDevice.sharedDevice</code> instance.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/connectToDevice(_:device:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser15connectToDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">connectToDevice(_:device:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A special convenience function that connects a <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> to this <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">connectToDevice</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">device</span><span class="p">:</span><span class="kt">UsergridDevice</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridClient</code> object to use for connecting.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>device</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The device to connect to.  If nil it will use the <code>UsergridDevice.sharedDevice</code> instance.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnectedDevice(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTGSqFT8responseCS_16UsergridResponse_T___T_">getConnectedDevice(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected device using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnectedDevice</span><span class="p">(</span><span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/getConnectedDevice(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser18getConnectedDeviceFTCS_14UsergridClient10completionGSqFT8responseCS_16UsergridResponse_T___T_">getConnectedDevice(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Gets the connected device.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">getConnectedDevice</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridClient</code> object to use for connecting.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/disconnectFromDevice(_:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnectFromDevice(_:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A special convenience function that disconnects a <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> from this <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> using the shared instance of <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnectFromDevice</span><span class="p">(</span><span class="nv">device</span><span class="p">:</span><span class="kt">UsergridDevice</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>device</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The device to connect to.  If nil it will use the <code>UsergridDevice.sharedDevice</code> instance.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_"></a>
+                    <a name="//apple_ref/swift/Method/disconnectFromDevice(_:device:completion:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FC11UsergridSDK12UsergridUser20disconnectFromDeviceFTCS_14UsergridClient6deviceGSqCS_14UsergridDevice_10completionGSqFT8responseCS_16UsergridResponse_T___T_">disconnectFromDevice(_:device:completion:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>A special convenience function that disconnects a <code><a href="../Classes/UsergridDevice.html">UsergridDevice</a></code> from this <code><a href="../Classes/UsergridUser.html">UsergridUser</a></code>.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">disconnectFromDevice</span><span class="p">(</span><span class="nv">client</span><span class="p">:</span><span class="kt">UsergridClient</span><span class="p">,</span> <span class="nv">device</span><span class="p">:</span><span class="kt">UsergridDevice</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span><span class="kt">UsergridResponseCompletion</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>client</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The <code>UsergridClient</code> object to use for connecting.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>device</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The device to connect to.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>completion</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The optional completion block.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                    </section>
+                  </div>
+                </li>
               </ul>
             </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUserAuth.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUserAuth.html
index 3759909..15b46fb 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUserAuth.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Classes/UsergridUserAuth.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Class/UsergridUserAuth" class="dashAnchor"></a>
     <a title="UsergridUserAuth Class Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,23 +164,23 @@
           <section class="section">
             <h1>UsergridUserAuth</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridUserAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
 
                 </div>
               </div>
-            <p>The <code>UsergridAuth</code> subclass used for user level authorization.</p>
+            <p>The <code><a href="../Classes/UsergridAuth.html">UsergridAuth</a></code> subclass used for user level authorization.</p>
 
           </section>
           <section class="section task-group-section">
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Instance%20Properties"></a>
-                  <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
-                  <a href="#/Instance%20Properties">
-                    <h3 class="section-name">Instance Properties</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Instance%20Properties"></a>
+                <a name="//apple_ref/swift/Section/Instance Properties" class="dashAnchor"></a>
+                <a href="#/Instance%20Properties">
+                  <h3 class="section-name">Instance Properties</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -165,7 +200,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">username</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -177,20 +212,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Initialization"></a>
-                  <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
-                  <a href="#/Initialization">
-                    <h3 class="section-name">Initialization</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Initialization"></a>
+                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
+                <a href="#/Initialization">
+                  <h3 class="section-name">Initialization</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT8usernameSS8passwordSS_S0_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFT8usernameSS8passwordSS_S0_"></a>
                     <a name="//apple_ref/swift/Method/init(username:password:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT8usernameSS8passwordSS_S0_">init(username:password:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFT8usernameSS8passwordSS_S0_">init(username:password:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -198,12 +233,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Designated initializer for <code>UsergridUserAuth</code> objects.</p>
+                        <p>Designated initializer for <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> objects.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span><span class="kt">String</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
 
@@ -244,18 +279,29 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>A new instance of <code>UsergridUserAuth</code>.</p>
+                        <p>A new instance of <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code>.</p>
 
                       </div>
                     </section>
                   </div>
                 </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <div class="task-name-container">
+                <a name="/NSCoding"></a>
+                <a name="//apple_ref/swift/Section/NSCoding" class="dashAnchor"></a>
+                <a href="#/NSCoding">
+                  <h3 class="section-name">NSCoding</h3>
+                </a>
+              </div>
+              <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridUserAuthcFT5coderCSo7NSCoder_GSqS0__"></a>
                     <a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuthcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -263,26 +309,51 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>NSCoding protocol initializer.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridUserAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aDecoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The decoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A decoded <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> object.</p>
+
+                      </div>
                     </section>
                   </div>
                 </li>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFS0_FCSo7NSCoderT_"></a>
+                    <a name="/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFCSo7NSCoderT_"></a>
                     <a name="//apple_ref/swift/Method/encodeWithCoder(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFS0_FCSo7NSCoderT_">encodeWithCoder(_:)</a>
+                    <a class="token" href="#/s:FC11UsergridSDK16UsergridUserAuth15encodeWithCoderFCSo7NSCoderT_">encodeWithCoder(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -290,17 +361,37 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Undocumented</p>
+                        <p>NSCoding protocol encoder.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridUserAuth</span> <span class="p">:</span> <span class="kt">UsergridAuth</span></code></pre>
+                          <pre class="highlight"><code><span class="k">override</span> <span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodeWithCoder</span><span class="p">(</span><span class="nv">aCoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
 
                         </div>
                       </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>aCoder</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>The encoder.</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
                     </section>
                   </div>
                 </li>
@@ -309,8 +400,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums.html
index 38c02ef..56fabb8 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums.html
@@ -7,12 +7,13 @@
     <meta charset='utf-8'>
     <script src="js/jquery.min.js" defer></script>
     <script src="js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a title="Enums  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html"> Docs</a> (97% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -26,7 +27,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="Classes.html">Classes</a>
+            <a href="Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Classes/Usergrid.html">Usergrid</a>
@@ -38,6 +39,9 @@
                 <a href="Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -59,9 +63,15 @@
                 <a href="Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -70,10 +80,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Enums.html">Enums</a>
+            <a href="Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -85,6 +103,9 @@
                 <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -99,7 +120,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Typealiases.html">Typealiases</a>
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -119,6 +148,12 @@
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -136,9 +171,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:O11UsergridSDK20UsergridAuthFallback"></a>
-                    <a name="//apple_ref/swift/Enum/UsergridAuthFallback" class="dashAnchor"></a>
-                    <a class="token" href="#/s:O11UsergridSDK20UsergridAuthFallback">UsergridAuthFallback</a>
+                    <a name="/s:O11UsergridSDK16UsergridAuthMode"></a>
+                    <a name="//apple_ref/swift/Enum/UsergridAuthMode" class="dashAnchor"></a>
+                    <a class="token" href="#/s:O11UsergridSDK16UsergridAuthMode">UsergridAuthMode</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -146,15 +181,15 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>An enumeration that is used to determine what the <code>UsergridClient</code> will fallback to depending on certain authorization conditions.</p>
+                        <p>An enumeration that is used to determine what the <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> will use for authorization.</p>
 
-                        <a href="Enums/UsergridAuthFallback.html" class="slightly-smaller">See more</a>
+                        <a href="Enums/UsergridAuthMode.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthFallback</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthMode</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                         </div>
                       </div>
@@ -174,13 +209,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridEntity</code> specific properties keys.  Note that trying to mutate the values of these properties will not be allowed in most cases.</p>
+                        <p><code><a href="Classes/UsergridEntity.html">UsergridEntity</a></code> specific properties keys.  Note that trying to mutate the values of these properties will not be allowed in most cases.</p>
 
                         <a href="Enums/UsergridEntityProperties.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridEntityProperties</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -208,7 +243,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridDeviceProperties</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -230,13 +265,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridUser</code> specific properties keys.</p>
+                        <p><code><a href="Classes/UsergridUser.html">UsergridUser</a></code> specific properties keys.</p>
 
                         <a href="Enums/UsergridUserProperties.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridUserProperties</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -258,13 +293,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridQuery</code> specific operators.</p>
+                        <p><code><a href="Classes/UsergridQuery.html">UsergridQuery</a></code> specific operators.</p>
 
                         <a href="Enums/UsergridQueryOperator.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridQueryOperator</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -286,13 +321,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridQuery</code> specific sort orders.</p>
+                        <p><code><a href="Classes/UsergridQuery.html">UsergridQuery</a></code> specific sort orders.</p>
 
                         <a href="Enums/UsergridQuerySortOrder.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridQuerySortOrder</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -314,13 +349,13 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p><code>UsergridAsset</code> image specific content types.</p>
+                        <p><code><a href="Classes/UsergridAsset.html">UsergridAsset</a></code> image specific content types.</p>
 
                         <a href="Enums/UsergridImageContentType.html" class="slightly-smaller">See more</a>
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridImageContentType</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -348,7 +383,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridDirection</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
@@ -357,13 +392,41 @@
                     </section>
                   </div>
                 </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:O11UsergridSDK18UsergridHttpMethod"></a>
+                    <a name="//apple_ref/swift/Enum/UsergridHttpMethod" class="dashAnchor"></a>
+                    <a class="token" href="#/s:O11UsergridSDK18UsergridHttpMethod">UsergridHttpMethod</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>An enumeration for defining the HTTP methods used by Usergrid.</p>
+
+                        <a href="Enums/UsergridHttpMethod.html" class="slightly-smaller">See more</a>
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridHttpMethod</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
               </ul>
             </div>
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthFallback.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthFallback.html
index 536c10d..13d19bc 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthFallback.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthFallback.html
@@ -7,18 +7,19 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridAuthFallback" class="dashAnchor"></a>
     <a title="UsergridAuthFallback Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html">UsergridSDK Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="../index.html"> Reference</a>
+        <a href="../index.html">UsergridSDK Reference</a>
         <img id="carat" src="../img/carat.png" />
         UsergridAuthFallback Enum Reference
       </p>
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,7 +81,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,7 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +141,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +156,12 @@
           <section class="section">
             <h1>UsergridAuthFallback</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthFallback</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
               </div>
-            <p>An enumeration that is used to determine what the <code>UsergridClient</code> will fallback to depending on certain authorization conditions.</p>
+            <p>An enumeration that is used to determine what the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> will fallback to depending on certain authorization conditions.</p>
 
           </section>
           <section class="section task-group-section">
@@ -153,7 +180,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>If a non-expired user auth token exists in <code>UsergridClient.currentUser</code>, this token is used to authenticate all API calls.</p>
+                        <p>If a non-expired user auth token exists in <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">UsergridClient.currentUser</a></code>, this token is used to authenticate all API calls.</p>
 
 <p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code.</p>
 
@@ -162,7 +189,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">None</span></code></pre>
 
@@ -188,7 +215,7 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>If a non-expired user auth token exists in <code>UsergridClient.currentUser</code>, this token is used to authenticate all API calls.</p>
+                        <p>If a non-expired user auth token exists in <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">UsergridClient.currentUser</a></code>, this token is used to authenticate all API calls.</p>
 
 <p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authFallback=.None).</p>
 
@@ -197,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">App</span></code></pre>
 
@@ -211,8 +238,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthMode.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthMode.html
new file mode 100644
index 0000000..7ed672a
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridAuthMode.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>UsergridAuthMode Enum Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Enum/UsergridAuthMode" class="dashAnchor"></a>
+    <a title="UsergridAuthMode Enum Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        UsergridAuthMode Enum Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>UsergridAuthMode</h1>
+              <div class="declaration">
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridAuthMode</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
+
+                </div>
+              </div>
+            <p>An enumeration that is used to determine what the <code><a href="../Classes/UsergridClient.html">UsergridClient</a></code> will use for authorization.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK16UsergridAuthMode4NoneFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/None" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK16UsergridAuthMode4NoneFMS0_S0_">None</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">None</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK16UsergridAuthMode4UserFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/User" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK16UsergridAuthMode4UserFMS0_S0_">User</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>If a non-expired <code><a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> exists in <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient11currentUserGSqCS_12UsergridUser_">UsergridClient.currentUser</a></code>, this token is used to authenticate all API calls.</p>
+
+<p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authMode=.None).</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">User</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK16UsergridAuthMode3AppFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/App" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK16UsergridAuthMode3AppFMS0_S0_">App</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>If a non-expired <code><a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> exists in <code><a href="../Classes/UsergridClient.html#/s:vC11UsergridSDK14UsergridClient7appAuthGSqCS_15UsergridAppAuth_">UsergridClient.appAuth</a></code>, this token is used to authenticate all API calls.</p>
+
+<p>If the API call fails, the activity is treated as a failure with an appropriate HTTP status code (This behavior is identical to authMode=.None).</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">App</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDeviceProperties.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDeviceProperties.html
index 9a8f620..a4736a3 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDeviceProperties.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDeviceProperties.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridDeviceProperties" class="dashAnchor"></a>
     <a title="UsergridDeviceProperties Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,7 +164,7 @@
           <section class="section">
             <h1>UsergridDeviceProperties</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridDeviceProperties</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Model</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Platform</span></code></pre>
 
@@ -220,7 +255,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">OSVersion</span></code></pre>
 
@@ -232,20 +267,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridDeviceProperties10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -253,12 +288,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the corresponding <code>UsergridDeviceProperties</code> from a string if it&rsquo;s valid.</p>
+                        <p>Gets the corresponding <code><a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a></code> from a string if it&rsquo;s valid.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">fromString</span><span class="p">(</span><span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridDeviceProperties</span><span class="p">?</span></code></pre>
 
@@ -286,7 +321,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The corresponding <code>UsergridDeviceProperties</code> or nil.</p>
+                        <p>The corresponding <code><a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a></code> or nil.</p>
 
                       </div>
                     </section>
@@ -310,7 +345,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -324,8 +359,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDirection.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDirection.html
index a5bc4f8..d11978c 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDirection.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridDirection.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridDirection" class="dashAnchor"></a>
     <a title="UsergridDirection Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,7 +164,7 @@
           <section class="section">
             <h1>UsergridDirection</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridDirection</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">In</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Out</span></code></pre>
 
@@ -201,13 +236,13 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -227,7 +262,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">connectionValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -241,8 +276,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridEntityProperties.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridEntityProperties.html
index f63a4ae..b9b3278 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridEntityProperties.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridEntityProperties.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridEntityProperties" class="dashAnchor"></a>
     <a title="UsergridEntityProperties Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridEntityProperties</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridEntityProperties</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridEntity</code> specific properties keys.  Note that trying to mutate the values of these properties will not be allowed in most cases.</p>
+            <p><code><a href="../Classes/UsergridEntity.html">UsergridEntity</a></code> specific properties keys.  Note that trying to mutate the values of these properties will not be allowed in most cases.</p>
 
           </section>
           <section class="section task-group-section">
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">EntityType</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">UUID</span></code></pre>
 
@@ -220,7 +255,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Name</span></code></pre>
 
@@ -251,7 +286,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Created</span></code></pre>
 
@@ -282,7 +317,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Modified</span></code></pre>
 
@@ -313,7 +348,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Location</span></code></pre>
 
@@ -325,20 +360,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK24UsergridEntityProperties10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -346,12 +381,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the corresponding <code>UsergridEntityProperties</code> from a string if it&rsquo;s valid.</p>
+                        <p>Gets the corresponding <code><a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a></code> from a string if it&rsquo;s valid.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">fromString</span><span class="p">(</span><span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridEntityProperties</span><span class="p">?</span></code></pre>
 
@@ -379,7 +414,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The corresponding <code>UsergridEntityProperties</code> or nil.</p>
+                        <p>The corresponding <code><a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a></code> or nil.</p>
 
                       </div>
                     </section>
@@ -403,7 +438,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -415,9 +450,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFS0_FCS_14UsergridEntitySb"></a>
+                    <a name="/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFCS_14UsergridEntitySb"></a>
                     <a name="//apple_ref/swift/Method/isMutableForEntity(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFS0_FCS_14UsergridEntitySb">isMutableForEntity(_:)</a>
+                    <a class="token" href="#/s:FO11UsergridSDK24UsergridEntityProperties18isMutableForEntityFCS_14UsergridEntitySb">isMutableForEntity(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -425,12 +460,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Determines if the <code>UsergridEntityProperties</code> is mutable for the given entity.</p>
+                        <p>Determines if the <code><a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a></code> is mutable for the given entity.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">isMutableForEntity</span><span class="p">(</span><span class="nv">entity</span><span class="p">:</span><span class="kt">UsergridEntity</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
 
@@ -458,7 +493,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>If the <code>UsergridEntityProperties</code> is mutable for the given entity</p>
+                        <p>If the <code><a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a></code> is mutable for the given entity</p>
 
                       </div>
                     </section>
@@ -469,8 +504,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridHttpMethod.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridHttpMethod.html
new file mode 100644
index 0000000..1ad6cbb
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridHttpMethod.html
@@ -0,0 +1,341 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>UsergridHttpMethod Enum Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Enum/UsergridHttpMethod" class="dashAnchor"></a>
+    <a title="UsergridHttpMethod Enum Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        UsergridHttpMethod Enum Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>UsergridHttpMethod</h1>
+              <div class="declaration">
+                <div class="language">
+                  <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridHttpMethod</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
+
+                </div>
+              </div>
+            <p>An enumeration for defining the HTTP methods used by Usergrid.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK18UsergridHttpMethod3GetFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/Get" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK18UsergridHttpMethod3GetFMS0_S0_">Get</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>GET</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">Get</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK18UsergridHttpMethod3PutFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/Put" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK18UsergridHttpMethod3PutFMS0_S0_">Put</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>PUT</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">Put</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK18UsergridHttpMethod4PostFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/Post" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK18UsergridHttpMethod4PostFMS0_S0_">Post</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>POST</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">Post</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FO11UsergridSDK18UsergridHttpMethod6DeleteFMS0_S0_"></a>
+                    <a name="//apple_ref/swift/Element/Delete" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FO11UsergridSDK18UsergridHttpMethod6DeleteFMS0_S0_">Delete</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>DELETE</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="k">case</span> <span class="kt">Delete</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:vO11UsergridSDK18UsergridHttpMethod11stringValueSS"></a>
+                    <a name="//apple_ref/swift/Property/stringValue" class="dashAnchor"></a>
+                    <a class="token" href="#/s:vO11UsergridSDK18UsergridHttpMethod11stringValueSS">stringValue</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Returns the string value.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridImageContentType.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridImageContentType.html
index 715da59..224450b 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridImageContentType.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridImageContentType.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridImageContentType" class="dashAnchor"></a>
     <a title="UsergridImageContentType Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridImageContentType</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridImageContentType</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridAsset</code> image specific content types.</p>
+            <p><code><a href="../Classes/UsergridAsset.html">UsergridAsset</a></code> image specific content types.</p>
 
           </section>
           <section class="section task-group-section">
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Png</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Jpeg</span></code></pre>
 
@@ -201,13 +236,13 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
@@ -227,7 +262,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -241,8 +276,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQueryOperator.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQueryOperator.html
index 514f851..fc07091 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQueryOperator.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQueryOperator.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridQueryOperator" class="dashAnchor"></a>
     <a title="UsergridQueryOperator Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridQueryOperator</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridQueryOperator</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridQuery</code> specific operators.</p>
+            <p><code><a href="../Classes/UsergridQuery.html">UsergridQuery</a></code> specific operators.</p>
 
           </section>
           <section class="section task-group-section">
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Equal</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">GreaterThan</span></code></pre>
 
@@ -220,7 +255,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">GreaterThanEqualTo</span></code></pre>
 
@@ -251,7 +286,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">LessThan</span></code></pre>
 
@@ -282,7 +317,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">LessThanEqualTo</span></code></pre>
 
@@ -294,20 +329,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK21UsergridQueryOperator10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -315,12 +350,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the corresponding <code>UsergridQueryOperator</code> from a string if it&rsquo;s valid.</p>
+                        <p>Gets the corresponding <code><a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a></code> from a string if it&rsquo;s valid.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">fromString</span><span class="p">(</span><span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridQueryOperator</span><span class="p">?</span></code></pre>
 
@@ -348,7 +383,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The corresponding <code>UsergridQueryOperator</code> or nil.</p>
+                        <p>The corresponding <code><a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a></code> or nil.</p>
 
                       </div>
                     </section>
@@ -372,7 +407,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -386,8 +421,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQuerySortOrder.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQuerySortOrder.html
index 940b672..3758d3f 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQuerySortOrder.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridQuerySortOrder.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridQuerySortOrder" class="dashAnchor"></a>
     <a title="UsergridQuerySortOrder Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridQuerySortOrder</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridQuerySortOrder</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridQuery</code> specific sort orders.</p>
+            <p><code><a href="../Classes/UsergridQuery.html">UsergridQuery</a></code> specific sort orders.</p>
 
           </section>
           <section class="section task-group-section">
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Asc</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Desc</span></code></pre>
 
@@ -201,20 +236,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridQuerySortOrder10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -222,12 +257,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the corresponding <code>UsergridQuerySortOrder</code> from a string if it&rsquo;s valid.</p>
+                        <p>Gets the corresponding <code><a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a></code> from a string if it&rsquo;s valid.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">fromString</span><span class="p">(</span><span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridQuerySortOrder</span><span class="p">?</span></code></pre>
 
@@ -255,7 +290,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The corresponding <code>UsergridQuerySortOrder</code> or nil.</p>
+                        <p>The corresponding <code><a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a></code> or nil.</p>
 
                       </div>
                     </section>
@@ -279,7 +314,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -293,8 +328,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridUserProperties.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridUserProperties.html
index 2369331..eff2cdc 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridUserProperties.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Enums/UsergridUserProperties.html
@@ -7,13 +7,14 @@
     <meta charset='utf-8'>
     <script src="../js/jquery.min.js" defer></script>
     <script src="../js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a name="//apple_ref/swift/Enum/UsergridUserProperties" class="dashAnchor"></a>
     <a title="UsergridUserProperties Enum Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="../index.html"> Docs</a> (97% documented)</p>
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -27,7 +28,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="../Classes.html">Classes</a>
+            <a href="../Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Classes/Usergrid.html">Usergrid</a>
@@ -39,6 +40,9 @@
                 <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -60,9 +64,15 @@
                 <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -71,10 +81,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Enums.html">Enums</a>
+            <a href="../Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="../Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -86,6 +104,9 @@
                 <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -100,7 +121,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="../Typealiases.html">Typealiases</a>
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -120,6 +149,12 @@
               <li class="nav-group-task">
                 <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,12 +164,12 @@
           <section class="section">
             <h1>UsergridUserProperties</h1>
               <div class="declaration">
-                <div class="Swift">
+                <div class="language">
                   <pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UsergridUserProperties</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
 
                 </div>
               </div>
-            <p><code>UsergridUser</code> specific properties keys.</p>
+            <p><code><a href="../Classes/UsergridUser.html">UsergridUser</a></code> specific properties keys.</p>
 
           </section>
           <section class="section task-group-section">
@@ -158,7 +193,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Name</span></code></pre>
 
@@ -189,7 +224,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Username</span></code></pre>
 
@@ -220,7 +255,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Password</span></code></pre>
 
@@ -251,7 +286,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Email</span></code></pre>
 
@@ -282,7 +317,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Age</span></code></pre>
 
@@ -313,7 +348,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Activated</span></code></pre>
 
@@ -344,7 +379,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Disabled</span></code></pre>
 
@@ -375,7 +410,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="k">case</span> <span class="kt">Picture</span></code></pre>
 
@@ -387,20 +422,20 @@
               </ul>
             </div>
             <div class="task-group">
-                <div class="task-name-container">
-                  <a name="/Methods"></a>
-                  <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
-                  <a href="#/Methods">
-                    <h3 class="section-name">Methods</h3>
-                  </a>
-                </div>
+              <div class="task-name-container">
+                <a name="/Methods"></a>
+                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
+                <a href="#/Methods">
+                  <h3 class="section-name">Methods</h3>
+                </a>
+              </div>
               <ul>
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFMS0_FSSGSqS0__"></a>
+                    <a name="/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFSSGSqS0__"></a>
                     <a name="//apple_ref/swift/Method/fromString(_:)" class="dashAnchor"></a>
-                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFMS0_FSSGSqS0__">fromString(_:)</a>
+                    <a class="token" href="#/s:ZFO11UsergridSDK22UsergridUserProperties10fromStringFSSGSqS0__">fromString(_:)</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -408,12 +443,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>Gets the corresponding <code>UsergridUserProperties</code> from a string if it&rsquo;s valid.</p>
+                        <p>Gets the corresponding <code><a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a></code> from a string if it&rsquo;s valid.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">fromString</span><span class="p">(</span><span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">UsergridUserProperties</span><span class="p">?</span></code></pre>
 
@@ -441,7 +476,7 @@
                       </div>
                       <div>
                         <h4>Return Value</h4>
-                        <p>The corresponding <code>UsergridUserProperties</code> or nil.</p>
+                        <p>The corresponding <code><a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a></code> or nil.</p>
 
                       </div>
                     </section>
@@ -465,7 +500,7 @@
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">stringValue</span><span class="p">:</span> <span class="kt">String</span></code></pre>
 
@@ -479,8 +514,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions.html
index e293ef7..a5c3fb5 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions.html
@@ -7,12 +7,13 @@
     <meta charset='utf-8'>
     <script src="js/jquery.min.js" defer></script>
     <script src="js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a title="Extensions  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html"> Docs</a> (88% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -26,7 +27,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="Classes.html">Classes</a>
+            <a href="Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Classes/Usergrid.html">Usergrid</a>
@@ -38,6 +39,9 @@
                 <a href="Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -47,6 +51,9 @@
                 <a href="Classes/UsergridClientConfig.html">UsergridClientConfig</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridEntity.html">UsergridEntity</a>
               </li>
               <li class="nav-group-task">
@@ -56,9 +63,15 @@
                 <a href="Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -67,15 +80,32 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Enums.html">Enums</a>
+            <a href="Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridDirection.html">UsergridDirection</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -90,15 +120,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Extensions.html">Extensions</a>
+            <a href="Extensions.html">Extensions</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Extensions/UsergridClient.html">UsergridClient</a>
+                <a href="Extensions/NSDate.html">NSDate</a>
               </li>
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Typealiases.html">Typealiases</a>
+            <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -118,6 +148,12 @@
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -135,9 +171,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:C11UsergridSDK14UsergridClient"></a>
-                    <a name="//apple_ref/swift/Extension/UsergridClient" class="dashAnchor"></a>
-                    <a class="token" href="#/s:C11UsergridSDK14UsergridClient">UsergridClient</a>
+                    <a name="/c:objc(cs)NSDate"></a>
+                    <a name="//apple_ref/swift/Extension/NSDate" class="dashAnchor"></a>
+                    <a class="token" href="#/c:objc(cs)NSDate">NSDate</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -145,17 +181,9 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The <code>UsergridClient</code> class is the base handler for making client connections to and managing relationships with Usergrid&rsquo;s API.</p>
+                        <p>Undocumented</p>
 
-                        <a href="Extensions/UsergridClient.html" class="slightly-smaller">See more</a>
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">UsergridClient</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
-
-                        </div>
+                        <a href="Extensions/NSDate.html" class="slightly-smaller">See more</a>
                       </div>
                     </section>
                   </div>
@@ -165,8 +193,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-10-21)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions/NSDate.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions/NSDate.html
new file mode 100644
index 0000000..e69c6e3
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Extensions/NSDate.html
@@ -0,0 +1,448 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>NSDate Extension Reference</title>
+    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="../js/jquery.min.js" defer></script>
+    <script src="../js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a name="//apple_ref/swift/Extension/NSDate" class="dashAnchor"></a>
+    <a title="NSDate Extension Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="../index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="../index.html"> Reference</a>
+        <img id="carat" src="../img/carat.png" />
+        NSDate Extension Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="../Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="../Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="../Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>NSDate</h1>
+            <p>Undocumented</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FE11UsergridSDKCSo6NSDatecFT12millisecondsSS_S0_"></a>
+                    <a name="//apple_ref/swift/Method/init(milliseconds:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FE11UsergridSDKCSo6NSDatecFT12millisecondsSS_S0_">init(milliseconds:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Creates a new <code><a href="../Extensions/NSDate.html">NSDate</a></code> object with the given milliseconds.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">milliseconds</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>milliseconds</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>the milliseconds</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>A new <code><a href="../Extensions/NSDate.html">NSDate</a></code> object.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FE11UsergridSDKCSo6NSDate18dateAsMillisecondsFT_Si"></a>
+                    <a name="//apple_ref/swift/Method/dateAsMilliseconds()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FE11UsergridSDKCSo6NSDate18dateAsMillisecondsFT_Si">dateAsMilliseconds()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to milliseconds.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">dateAsMilliseconds</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The number of milliseconds corresponding to the date.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:FE11UsergridSDKCSo6NSDate24dateAsMillisecondsStringFT_SS"></a>
+                    <a name="//apple_ref/swift/Method/dateAsMillisecondsString()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:FE11UsergridSDKCSo6NSDate24dateAsMillisecondsStringFT_SS">dateAsMillisecondsString()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to milliseconds and returns the value as a string.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">dateAsMillisecondsString</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The number of milliseconds corresponding to the date as a string.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate22stringFromMillesecondsFSiSS"></a>
+                    <a name="//apple_ref/swift/Method/stringFromMilleseconds(_:)" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate22stringFromMillesecondsFSiSS">stringFromMilleseconds(_:)</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the number of milliseconds to a string.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">stringFromMilleseconds</span><span class="p">(</span><span class="nv">milliseconds</span><span class="p">:</span><span class="kt">Int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Parameters</h4>
+                        <table class="graybox">
+                          <tbody>
+                            <tr>
+                              <td>
+                                <code>
+                                <em>milliseconds</em>
+                                </code>
+                              </td>
+                              <td>
+                                <div>
+                                  <p>the milliseconds to convert</p>
+
+                                </div>
+                              </td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The milliseconds as a string.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate19unixTimeStampStringFT_SS"></a>
+                    <a name="//apple_ref/swift/Method/unixTimeStampString()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate19unixTimeStampStringFT_SS">unixTimeStampString()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to the corresponding UNIX time stamp as a string.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">unixTimeStampString</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The UNIX time stamp as a string.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate13unixTimeStampFT_Si"></a>
+                    <a name="//apple_ref/swift/Method/unixTimeStamp()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate13unixTimeStampFT_Si">unixTimeStamp()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the <code><a href="../Extensions/NSDate.html">NSDate</a></code> object to the corresponding UNIX time stamp.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">unixTimeStamp</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The UNIX time stamp.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:ZFE11UsergridSDKCSo6NSDate17nowAsMillisecondsFT_Si"></a>
+                    <a name="//apple_ref/swift/Method/nowAsMilliseconds()" class="dashAnchor"></a>
+                    <a class="token" href="#/s:ZFE11UsergridSDKCSo6NSDate17nowAsMillisecondsFT_Si">nowAsMilliseconds()</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>Converts the current date to milliseconds.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">nowAsMilliseconds</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
+
+                        </div>
+                      </div>
+                      <div>
+                        <h4>Return Value</h4>
+                        <p>The milliseconds of the current date.</p>
+
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Global Variables.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Global Variables.html
new file mode 100644
index 0000000..2685313
--- /dev/null
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Global Variables.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>Global Variables  Reference</title>
+    <link rel="stylesheet" type="text/css" href="css/jazzy.css" />
+    <link rel="stylesheet" type="text/css" href="css/highlight.css" />
+    <meta charset='utf-8'>
+    <script src="js/jquery.min.js" defer></script>
+    <script src="js/jazzy.js" defer></script>
+    
+  </head>
+  <body>
+    <a title="Global Variables  Reference"></a>
+    <header>
+      <div class="content-wrapper">
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
+      </div>
+    </header>
+    <div class="content-wrapper">
+      <p id="breadcrumbs">
+        <a href="index.html"> Reference</a>
+        <img id="carat" src="img/carat.png" />
+        Global Variables  Reference
+      </p>
+    </div>
+    <div class="content-wrapper">
+      <nav class="sidebar">
+        <ul class="nav-groups">
+          <li class="nav-group-name">
+            <a href="Classes.html">Classes</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Classes/Usergrid.html">Usergrid</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridAppAuth.html">UsergridAppAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridAsset.html">UsergridAsset</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridAuth.html">UsergridAuth</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridClient.html">UsergridClient</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridClientConfig.html">UsergridClientConfig</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridDevice.html">UsergridDevice</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridEntity.html">UsergridEntity</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridFileMetaData.html">UsergridFileMetaData</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridQuery.html">UsergridQuery</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridResponse.html">UsergridResponse</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridUser.html">UsergridUser</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Classes/UsergridUserAuth.html">UsergridUserAuth</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Global Variables.html">Global Variables</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridDirection.html">UsergridDirection</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridQueryOperator.html">UsergridQueryOperator</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridQuerySortOrder.html">UsergridQuerySortOrder</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Enums/UsergridUserProperties.html">UsergridUserProperties</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Typealiases.html">Typealiases</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK29UsergridAssetUploadCompletion">UsergridAssetUploadCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK26UsergridResponseCompletion">UsergridResponseCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+      <article class="main-content">
+        <section>
+          <section class="section">
+            <h1>Global Variables</h1>
+            <p>The following global variables are available globally.</p>
+
+          </section>
+          <section class="section task-group-section">
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:v11UsergridSDK18UsergridSDKVersionSS"></a>
+                    <a name="//apple_ref/swift/Global/UsergridSDKVersion" class="dashAnchor"></a>
+                    <a class="token" href="#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The version number for the Usergrid Swift SDK.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">UsergridSDKVersion</span> <span class="o">=</span> <span class="s">"2.1.1"</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </section>
+        </section>
+        <section id="footer">
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+        </section>
+      </article>
+    </div>
+  </body>
+</div>
+</html>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Typealiases.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Typealiases.html
index 827812c..4a5b04a 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Typealiases.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/Typealiases.html
@@ -7,12 +7,13 @@
     <meta charset='utf-8'>
     <script src="js/jquery.min.js" defer></script>
     <script src="js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a title="Typealiases  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html"> Docs</a> (97% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -26,7 +27,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="Classes.html">Classes</a>
+            <a href="Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Classes/Usergrid.html">Usergrid</a>
@@ -38,6 +39,9 @@
                 <a href="Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -59,9 +63,15 @@
                 <a href="Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -70,10 +80,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Enums.html">Enums</a>
+            <a href="Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -85,6 +103,9 @@
                 <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -99,7 +120,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Typealiases.html">Typealiases</a>
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -119,6 +148,12 @@
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -136,33 +171,6 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:11UsergridSDK31UsergridUserAuthCompletionBlock"></a>
-                    <a name="//apple_ref/swift/Alias/UsergridUserAuthCompletionBlock" class="dashAnchor"></a>
-                    <a class="token" href="#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
-                    </code>
-                  </div>
-                  <div class="height-container">
-                    <div class="pointer-container"></div>
-                    <section class="section">
-                      <div class="pointer"></div>
-                      <div class="abstract">
-                        <p>The completion block used in <code>UsergridUserAuth</code> authentication methods.</p>
-
-                      </div>
-                      <div class="declaration">
-                        <h4>Declaration</h4>
-                        <div class="Swift">
-                          <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridUserAuthCompletionBlock</span> <span class="o">=</span> <span class="p">(</span><span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridUserAuth</span><span class="p">?,</span> <span class="nv">user</span><span class="p">:</span><span class="kt">UsergridUser</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
-
-                        </div>
-                      </div>
-                    </section>
-                  </div>
-                </li>
-                <li class="item">
-                  <div>
-                    <code>
                     <a name="/s:11UsergridSDK30UsergridAppAuthCompletionBlock"></a>
                     <a name="//apple_ref/swift/Alias/UsergridAppAuthCompletionBlock" class="dashAnchor"></a>
                     <a class="token" href="#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -173,14 +181,99 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The completion block used in <code>UsergridAppAuth</code> authentication methods.</p>
+                        <p>The completion block used in <code><a href="Classes/UsergridAppAuth.html">UsergridAppAuth</a></code> authentication methods.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAppAuthCompletionBlock</span> <span class="o">=</span> <span class="p">(</span><span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridAppAuth</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAppAuthCompletionBlock</span> <span class="o">=</span> <span class="p">(</span><span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridAppAuth</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:11UsergridSDK31UsergridUserAuthCompletionBlock"></a>
+                    <a name="//apple_ref/swift/Alias/UsergridUserAuthCompletionBlock" class="dashAnchor"></a>
+                    <a class="token" href="#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The completion block used in <code><a href="Classes/UsergridUserAuth.html">UsergridUserAuth</a></code> authentication methods.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridUserAuthCompletionBlock</span> <span class="o">=</span> <span class="p">(</span><span class="nv">auth</span><span class="p">:</span><span class="kt">UsergridUserAuth</span><span class="p">?,</span> <span class="nv">user</span><span class="p">:</span><span class="kt">UsergridUser</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <div class="task-group">
+              <ul>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:11UsergridSDK34UsergridUserAvailabilityCompletion"></a>
+                    <a name="//apple_ref/swift/Alias/UsergridUserAvailabilityCompletion" class="dashAnchor"></a>
+                    <a class="token" href="#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The completion block used for checking email and/or username availablity for new <code><a href="Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridUserAvailabilityCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?,</span> <span class="nv">available</span><span class="p">:</span><span class="kt">Bool</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+
+                        </div>
+                      </div>
+                    </section>
+                  </div>
+                </li>
+                <li class="item">
+                  <div>
+                    <code>
+                    <a name="/s:11UsergridSDK35UsergridUserResetPasswordCompletion"></a>
+                    <a name="//apple_ref/swift/Alias/UsergridUserResetPasswordCompletion" class="dashAnchor"></a>
+                    <a class="token" href="#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+                    </code>
+                  </div>
+                  <div class="height-container">
+                    <div class="pointer-container"></div>
+                    <section class="section">
+                      <div class="pointer"></div>
+                      <div class="abstract">
+                        <p>The completion block used for changing the password of <code><a href="Classes/UsergridUser.html">UsergridUser</a></code> objects.</p>
+
+                      </div>
+                      <div class="declaration">
+                        <h4>Declaration</h4>
+                        <div class="language">
+                          <p class="aside-title">Swift</p>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridUserResetPasswordCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?,</span> <span class="nv">didSucceed</span><span class="p">:</span><span class="kt">Bool</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
 
                         </div>
                       </div>
@@ -204,12 +297,12 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The completion block used in for most <code>UsergridClient</code> requests.</p>
+                        <p>The completion block used in for most <code><a href="Classes/UsergridClient.html">UsergridClient</a></code> requests.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
                           <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridResponseCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="nv">response</span><span class="p">:</span> <span class="kt">UsergridResponse</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
 
@@ -225,9 +318,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:11UsergridSDK31UsergridAssetDownloadCompletion"></a>
-                    <a name="//apple_ref/swift/Alias/UsergridAssetDownloadCompletion" class="dashAnchor"></a>
-                    <a class="token" href="#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
+                    <a name="/s:11UsergridSDK28UsergridAssetRequestProgress"></a>
+                    <a name="//apple_ref/swift/Alias/UsergridAssetRequestProgress" class="dashAnchor"></a>
+                    <a class="token" href="#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -235,14 +328,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The completion block used in <code>UsergridAsset</code> are finished downloading.</p>
+                        <p>The progress block used in <code><a href="Classes/UsergridAsset.html">UsergridAsset</a></code> are being uploaded or downloaded.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetDownloadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetRequestProgress</span> <span class="o">=</span> <span class="p">(</span><span class="nv">bytesFinished</span><span class="p">:</span><span class="kt">Int64</span><span class="p">,</span> <span class="nv">bytesExpected</span><span class="p">:</span> <span class="kt">Int64</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
 
                         </div>
                       </div>
@@ -262,14 +355,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The completion block used in <code>UsergridAsset</code> are finished uploading.</p>
+                        <p>The completion block used in <code><a href="Classes/UsergridAsset.html">UsergridAsset</a></code> are finished uploading.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetUploadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="nv">response</span><span class="p">:</span><span class="kt">UsergridResponse</span><span class="p">,</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetUploadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">response</span><span class="p">:</span> <span class="kt">UsergridResponse</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
 
                         </div>
                       </div>
@@ -279,9 +372,9 @@
                 <li class="item">
                   <div>
                     <code>
-                    <a name="/s:11UsergridSDK28UsergridAssetRequestProgress"></a>
-                    <a name="//apple_ref/swift/Alias/UsergridAssetRequestProgress" class="dashAnchor"></a>
-                    <a class="token" href="#/s:11UsergridSDK28UsergridAssetRequestProgress">UsergridAssetRequestProgress</a>
+                    <a name="/s:11UsergridSDK31UsergridAssetDownloadCompletion"></a>
+                    <a name="//apple_ref/swift/Alias/UsergridAssetDownloadCompletion" class="dashAnchor"></a>
+                    <a class="token" href="#/s:11UsergridSDK31UsergridAssetDownloadCompletion">UsergridAssetDownloadCompletion</a>
                     </code>
                   </div>
                   <div class="height-container">
@@ -289,14 +382,14 @@
                     <section class="section">
                       <div class="pointer"></div>
                       <div class="abstract">
-                        <p>The progress block used in <code>UsergridAsset</code> are being uploaded or downloaded.</p>
+                        <p>The completion block used in <code><a href="Classes/UsergridAsset.html">UsergridAsset</a></code> are finished downloading.</p>
 
                       </div>
                       <div class="declaration">
                         <h4>Declaration</h4>
-                        <div class="Swift">
+                        <div class="language">
                           <p class="aside-title">Swift</p>
-                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetRequestProgress</span> <span class="o">=</span> <span class="p">(</span><span class="nv">bytesFinished</span><span class="p">:</span><span class="kt">Int64</span><span class="p">,</span> <span class="nv">bytesExpected</span><span class="p">:</span> <span class="kt">Int64</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
+                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">UsergridAssetDownloadCompletion</span> <span class="o">=</span> <span class="p">(</span><span class="k">as</span><span class="nv">set</span><span class="p">:</span><span class="kt">UsergridAsset</span><span class="p">?,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">UsergridResponseError</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
 
                         </div>
                       </div>
@@ -308,8 +401,8 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css
index 18c292e..d0db0e1 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css
@@ -126,8 +126,7 @@
     color: #000000;
     font-weight: bold; }
   .highlight .kt {
-    color: #445588;
-    font-weight: bold; }
+    color: #445588; }
   .highlight .m {
     color: #009999; }
   .highlight .s {
@@ -147,8 +146,7 @@
     color: #990000;
     font-weight: bold; }
   .highlight .nf {
-    color: #990000;
-    font-weight: bold; }
+    color: #990000; }
   .highlight .nn {
     color: #555555; }
   .highlight .nt {
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css
index a42da72..2a7da3a 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css
@@ -13,7 +13,7 @@
   -webkit-font-smoothing: subpixel-antialiased;
   word-wrap: break-word; }
 
-h1, h2, h3, h4, h5, h6 {
+h1, h2, h3 {
   margin-top: 0.8em;
   margin-bottom: 0.3em;
   font-weight: 100;
@@ -26,11 +26,10 @@
   font-size: 2em;
   border-bottom: 1px solid #e2e2e2; }
 
-h3 {
-  font-size: 1.5em; }
-
 h4 {
-  font-size: 1.25em; }
+  font-size: 13px;
+  line-height: 1.5;
+  margin-top: 21px; }
 
 h5 {
   font-size: 1.1em; }
@@ -39,6 +38,14 @@
   font-size: 1.1em;
   color: #777; }
 
+.section-name {
+  color: gray;
+  display: block;
+  font-family: Helvetica;
+  font-size: 22px;
+  font-weight: 100;
+  margin-bottom: 15px; }
+
 pre, code {
   font: 0.95em Menlo, monospace;
   color: #777;
@@ -167,12 +174,6 @@
   border-radius: 4px;
   overflow-x: auto; }
 
-.aside-title {
-  font-size: 9px;
-  letter-spacing: 2px;
-  text-transform: uppercase;
-  padding-bottom: 0; }
-
 .declaration .highlight {
   overflow-x: initial;
   padding: 0 40px 40px 0;
@@ -191,6 +192,12 @@
 .task-group {
   padding-top: 0px; }
 
+.task-name-container a[name]:before {
+  content: "";
+  display: block;
+  padding-top: 70px;
+  margin: -70px 0 0; }
+
 .item {
   padding-top: 8px;
   width: 100%;
@@ -205,7 +212,12 @@
     padding: 0; }
   .item .token {
     padding-left: 3px;
-    margin-left: 15px; }
+    margin-left: 15px;
+    font-size: 11.9px; }
+  .item .declaration-note {
+    font-size: .85em;
+    color: gray;
+    font-style: italic; }
 
 .pointer-container {
   border-bottom: 1px solid #e2e2e2;
@@ -244,14 +256,31 @@
     padding-top: 10px;
     padding-bottom: 5px; }
 
-div.Swift {
-  padding: 4px 0 2px 10px;
-  margin-bottom: 1em;
-  border-left: 5px solid #cde9f4;
+.aside, .language {
+  padding: 6px 12px;
+  margin: 12px 0;
+  border-left: 5px solid #dddddd;
   overflow-y: hidden; }
-  div.Swift .aside-title {
-    color: #4b8afb;
+  .aside .aside-title, .language .aside-title {
+    font-size: 9px;
+    letter-spacing: 2px;
+    text-transform: uppercase;
+    padding-bottom: 0;
+    margin: 0;
+    color: #aaa;
     -webkit-user-select: none; }
+  .aside p:last-child, .language p:last-child {
+    margin-bottom: 0; }
+
+.language {
+  border-left: 5px solid #cde9f4; }
+  .language .aside-title {
+    color: #4b8afb; }
+
+.aside-warning {
+  border-left: 5px solid #ff6666; }
+  .aside-warning .aside-title {
+    color: #ff0000; }
 
 .graybox {
   border-collapse: collapse;
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/index.html b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/index.html
index c84240d..b49cde5 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/index.html
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/index.html
@@ -7,12 +7,13 @@
     <meta charset='utf-8'>
     <script src="js/jquery.min.js" defer></script>
     <script src="js/jazzy.js" defer></script>
+    
   </head>
   <body>
     <a title="  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html"> Docs</a> (97% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
@@ -26,7 +27,7 @@
       <nav class="sidebar">
         <ul class="nav-groups">
           <li class="nav-group-name">
-          <a href="Classes.html">Classes</a>
+            <a href="Classes.html">Classes</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Classes/Usergrid.html">Usergrid</a>
@@ -38,6 +39,9 @@
                 <a href="Classes/UsergridAsset.html">UsergridAsset</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridAssetUploadRequest.html">UsergridAssetUploadRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridAuth.html">UsergridAuth</a>
               </li>
               <li class="nav-group-task">
@@ -59,9 +63,15 @@
                 <a href="Classes/UsergridQuery.html">UsergridQuery</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridRequest.html">UsergridRequest</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridResponse.html">UsergridResponse</a>
               </li>
               <li class="nav-group-task">
+                <a href="Classes/UsergridResponseError.html">UsergridResponseError</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Classes/UsergridUser.html">UsergridUser</a>
               </li>
               <li class="nav-group-task">
@@ -70,10 +80,18 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Enums.html">Enums</a>
+            <a href="Global Variables.html">Global Variables</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Global Variables.html#/s:v11UsergridSDK18UsergridSDKVersionSS">UsergridSDKVersion</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Enums.html">Enums</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -85,6 +103,9 @@
                 <a href="Enums/UsergridEntityProperties.html">UsergridEntityProperties</a>
               </li>
               <li class="nav-group-task">
+                <a href="Enums/UsergridHttpMethod.html">UsergridHttpMethod</a>
+              </li>
+              <li class="nav-group-task">
                 <a href="Enums/UsergridImageContentType.html">UsergridImageContentType</a>
               </li>
               <li class="nav-group-task">
@@ -99,7 +120,15 @@
             </ul>
           </li>
           <li class="nav-group-name">
-          <a href="Typealiases.html">Typealiases</a>
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
+            <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK30UsergridAppAuthCompletionBlock">UsergridAppAuthCompletionBlock</a>
@@ -119,6 +148,12 @@
               <li class="nav-group-task">
                 <a href="Typealiases.html#/s:11UsergridSDK31UsergridUserAuthCompletionBlock">UsergridUserAuthCompletionBlock</a>
               </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK34UsergridUserAvailabilityCompletion">UsergridUserAvailabilityCompletion</a>
+              </li>
+              <li class="nav-group-task">
+                <a href="Typealiases.html#/s:11UsergridSDK35UsergridUserResetPasswordCompletion">UsergridUserResetPasswordCompletion</a>
+              </li>
             </ul>
           </li>
         </ul>
@@ -129,22 +164,27 @@
             
             <a href='#usergridsdk' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='usergridsdk'>UsergridSDK</h1>
 
-<p><a href="https://travis-ci.org/RobertWalsh/UsergridSDK"><img src="https://travis-ci.org/RobertWalsh/UsergridSDK.svg" alt="Build Status"></a>
-<a href="http://cocoadocs.org/docsets/UsergridSDK"><img src="https://img.shields.io/cocoapods/p/UsergridSDK.svg?style=flat" alt="Platform"></a>
-<a href="https://img.shields.io/cocoapods/v/UsergridSDK.svg"><img src="https://img.shields.io/cocoapods/v/UsergridSDK.svg" alt="Cocoapods Compatible"></a></p>
+<p><a href="http://cocoadocs.org/docsets/UsergridSDK"><img src="https://img.shields.io/cocoapods/p/UsergridSDK.svg?style=flat" alt="Platform"></a>
+<a href="https://cocoapods.org/pods/UsergridSDK"><img src="https://img.shields.io/cocoapods/v/UsergridSDK.svg" alt="CocoaPods Compatible"></a></p>
 
 <p>Usergrid SDK written in Swift </p>
 <a href='#requirements' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='requirements'>Requirements</h2>
 
 <blockquote>
-<p><strong>Embedded frameworks require a minimum deployment target of iOS 8.</strong></p>
+<p><strong>While the Usergrid SDK is written in Swift, the functionality remains compatible with Objective-C.</strong></p>
+
+<p><strong>Use <code>#import &lt;UsergridSDK/UsergridSDK-Swift.h&gt;</code> in your Objective-C files to enable the use of the SDK.</strong></p>
 </blockquote>
 
 <ul>
-<li>iOS 8.0+</li>
+<li>iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.1+ / watchOS 2.1+</li>
 <li>Xcode 7.1+</li>
 </ul>
 <a href='#installation' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation'>Installation</h2>
+
+<blockquote>
+<p><strong>Embedded frameworks require a minimum deployment target of iOS 8 or OS X Mavericks (10.9).</strong></p>
+</blockquote>
 <a href='#cocoapods' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='cocoapods'>CocoaPods</h3>
 
 <blockquote>
@@ -172,11 +212,11 @@
 <ul>
 <li>Add UsergridSDK as a git submodule by running the following command:</li>
 </ul>
-<pre class="highlight shell"><code><span class="gp">$ </span>git submodule add https://github.com/RobertWalsh/UsergridSDK.git
+<pre class="highlight shell"><code><span class="gp">$ </span>git submodule add https://github.com/apache/usergrid
 </code></pre>
 
 <ul>
-<li>Open the new <code>UsergridSDK</code> folder, and drag the <code>UsergridSDK.xcodeproj</code> into the Project Navigator of your application&rsquo;s Xcode project.</li>
+<li>Open the <code>sdks/swift</code> folder, and drag the <code>UsergridSDK.xcodeproj</code> into the Project Navigator of your application&rsquo;s Xcode project.</li>
 </ul>
 
 <blockquote>
@@ -199,33 +239,686 @@
 <p>The documentation for this library is available <a href="http://cocoadocs.org/docsets/UsergridSDK">here</a>.</p>
 <a href='#initialization' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='initialization'>Initialization</h2>
 
-<p>The <code>Usergrid</code> class acts as a static shared instance manager for the <code>UsergridClient</code> class.</p>
+<p>There are two different ways of initializing the Usergrid Swift SDK: </p>
+
+<ol>
+<li>The singleton pattern is both convenient and enables the developer to use a globally available and always-initialized instance of Usergrid.</li>
+</ol>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">initSharedInstance</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="s">"orgId"</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="s">"appId"</span><span class="p">)</span>
+</code></pre>
+
+<ol>
+<li>The Instance pattern enables the developer to manage instances of the Usergrid client independently and in an isolated fashion. The primary use-case for this is when an application connects to multiple Usergrid targets.</li>
+</ol>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">client</span> <span class="o">=</span> <span class="kt">UsergridClient</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="s">"orgId"</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="s">"appId"</span><span class="p">)</span>
+</code></pre>
+
+<p><em>Note: Examples in this readme assume you are using the <code>Usergrid</code> shared instance. If you&rsquo;ve implemented the instance pattern instead, simply replace <code>Usergrid</code> with your client instance variable.</em></p>
+<a href='#push_notifications' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='push_notifications'>Push Notifications</h2>
+
+<p><em>Note: You must have an Apple Developer account along with valid provisioning profiles set in order to receive push notifications.</em></p>
+
+<p>In order to utilize Usergrid push notifications, you must register the device with an Usergrid push notifier identifier.</p>
 
 <blockquote>
-<p>While it is possible to create mutliple instances of the <code>UsergridClient</code> class, we recomend using the shared instance where possible.</p>
+<p>For a more thorough example of recieving push notifications and sending push notifications (from the device) refer to the Push sample app located in the <code>/Samples</code> folder.</p>
 </blockquote>
 
-<p>To initialize the shared instance of you will want to call the following code.  This code usually goes best in the AppDelegate&rsquo;s life cycle functions.</p>
+<p>The following code snippet shows how you would register for push notifications and apply the push token within the application delegate.</p>
 <pre class="highlight swift"><code><span class="kd">import</span> <span class="kt">UsergridSDK</span>
 
-<span class="kd">func</span> <span class="nf">application</span><span class="p">(</span><span class="nv">application</span><span class="p">:</span> <span class="kt">UIApplication</span><span class="p">,</span> <span class="n">didFinishLaunchingWithOptions</span> <span class="nv">launchOptions</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSObject</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">]?)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span>
-    <span class="kt">Usergrid</span><span class="o">.</span><span class="nf">initSharedInstance</span><span class="p">(</span><span class="nv">orgID</span><span class="p">:</span> <span class="s">"orgID"</span><span class="p">,</span> <span class="nv">appID</span><span class="p">:</span> <span class="s">"appID"</span><span class="p">)</span>
-    <span class="k">return</span> <span class="kc">true</span>
+<span class="kd">@UIApplicationMain</span> <span class="kd">class</span> <span class="kt">AppDelegate</span><span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">UIApplicationDelegate</span> <span class="p">{</span>
+
+    <span class="kd">func</span> <span class="nf">application</span><span class="p">(</span><span class="nv">application</span><span class="p">:</span> <span class="kt">UIApplication</span><span class="p">,</span> <span class="n">didFinishLaunchingWithOptions</span> <span class="nv">launchOptions</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSObject</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">]?)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span> <span class="p">{</span>
+
+        <span class="c1">// Initialize the shared instance of Usergrid.</span>
+        <span class="kt">Usergrid</span><span class="o">.</span><span class="nf">initSharedInstance</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span><span class="s">"orgId"</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="s">"appId"</span><span class="p">)</span>
+
+        <span class="c1">// Register for APN</span>
+        <span class="n">application</span><span class="o">.</span><span class="nf">registerUserNotificationSettings</span><span class="p">(</span><span class="kt">UIUserNotificationSettings</span><span class="p">(</span> <span class="nv">forTypes</span><span class="p">:</span> <span class="p">[</span><span class="o">.</span><span class="kt">Alert</span><span class="p">,</span> <span class="o">.</span><span class="kt">Badge</span><span class="p">,</span> <span class="o">.</span><span class="kt">Sound</span><span class="p">],</span> <span class="nv">categories</span><span class="p">:</span> <span class="kc">nil</span><span class="p">))</span>
+        <span class="n">application</span><span class="o">.</span><span class="nf">registerForRemoteNotifications</span><span class="p">()</span>
+
+        <span class="k">return</span> <span class="kc">true</span>
+    <span class="p">}</span>
+
+    <span class="kd">func</span> <span class="nf">application</span><span class="p">(</span><span class="nv">application</span><span class="p">:</span> <span class="kt">UIApplication</span><span class="p">,</span> <span class="n">didRegisterForRemoteNotificationsWithDeviceToken</span> <span class="nv">deviceToken</span><span class="p">:</span> <span class="kt">NSData</span><span class="p">)</span> <span class="p">{</span>
+        <span class="kt">Usergrid</span><span class="o">.</span><span class="nf">applyPushToken</span><span class="p">(</span><span class="n">deviceToken</span><span class="p">,</span> <span class="nv">notifierID</span><span class="p">:</span> <span class="s">"notifierId"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+            <span class="c1">// The push notification is now added to Usergrid for this device and this device will now be able to recieve notifications.</span>
+        <span class="p">}</span>
+    <span class="p">}</span>
 <span class="p">}</span>
 </code></pre>
-<a href='#communication' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='communication'>Communication</h2>
+<a href='#restful_operations' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='restful_operations'>RESTful operations</h2>
+
+<p>When making any RESTful call, a <code>type</code> parameter (or <code>path</code>) is always required. Whether you specify this as an argument or in an object as a parameter is up to you.</p>
+<a href='#get' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='get'>GET</h3>
 
 <ul>
-<li>If you <strong>found a bug</strong>, open an issue.</li>
-<li>If you <strong>have a feature request</strong>, open an issue.</li>
-<li>If you <strong>want to contribute</strong>, submit a pull request.</li>
+<li>To get entities in a collection:</li>
 </ul>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"collection"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="k">var</span> <span class="nv">entities</span><span class="p">:</span> <span class="p">[</span><span class="kt">UsergridEntity</span><span class="p">]?</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">entities</span>
+<span class="p">}</span>
+</code></pre>
+
+<ul>
+<li>To get a specific entity in a collection by uuid or name:</li>
+</ul>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"collection"</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="s">"&lt;uuid-or-name&gt;"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="k">var</span> <span class="nv">entity</span><span class="p">:</span> <span class="kt">UsergridEntity</span><span class="p">?</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">entity</span><span class="p">?</span>
+<span class="p">}</span>
+</code></pre>
+
+<ul>
+<li>To get specific entities in a collection by passing a <code>UsergridQuery</code> object:</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">gt</span><span class="p">(</span><span class="s">"weight"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="mf">2.4</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">contains</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"bl*"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">not</span><span class="p">()</span>
+                                 <span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"blue"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">or</span><span class="p">()</span>
+                                 <span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"orange"</span><span class="p">)</span>
+
+<span class="c1">// this will build out the following query:</span>
+<span class="c1">// select * where weight &gt; 2.4 and color contains 'bl*' and not color = 'blue' or color = 'orange'</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="k">var</span> <span class="nv">entities</span><span class="p">:</span> <span class="p">[</span><span class="kt">UsergridEntity</span><span class="p">]?</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">entities</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#post_and_put' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='post_and_put'>POST and PUT</h3>
+
+<p>POST and PUT requests both require a JSON body payload. You can pass either a Swift object or a <code>UsergridEntity</code> instance. While the former works in principle, best practise is to use a <code>UsergridEntity</code> wherever practical. When an entity has a uuid or name property and already exists on the server, use a PUT request to update it. If it does not, use POST to create it.</p>
+
+<ul>
+<li>To create a new entity in a collection (<strong>POST</strong>):</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">entity</span> <span class="o">=</span> <span class="kt">UsergridEntity</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="s">"restaurant"</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:</span> <span class="p">[</span><span class="s">"restaurant"</span><span class="p">:</span> <span class="s">"Dino's Deep Dish"</span><span class="p">,</span><span class="s">"cuisine"</span><span class="p">:</span> <span class="s">"pizza"</span><span class="p">])</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">POST</span><span class="p">(</span><span class="n">entity</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entity should now have a uuid property and be created</span>
+<span class="p">}</span>
+
+<span class="c1">// you can also POST an array of entities:</span>
+
+<span class="k">var</span> <span class="nv">entities</span> <span class="o">=</span> <span class="p">[</span><span class="kt">UsergridEntity</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="s">"restaurant"</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:[</span><span class="s">"restaurant"</span><span class="p">:</span> <span class="s">"Dino's Deep Dish"</span><span class="p">,</span><span class="s">"cuisine"</span><span class="p">:</span> <span class="s">"pizza"</span><span class="p">]),</span> 
+                <span class="kt">UsergridEntity</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="s">"restaurant"</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:[</span><span class="s">"restaurant"</span><span class="p">:</span> <span class="s">"Pizza da Napoli"</span><span class="p">,</span><span class="s">"cuisine"</span><span class="p">:</span> <span class="s">"pizza"</span><span class="p">])]</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">POST</span><span class="p">(</span><span class="n">entities</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// response.entities should now contain now valid posted entities.</span>
+<span class="p">}</span>
+</code></pre>
+
+<ul>
+<li>To update an entity in a collection (<strong>PUT</strong>):</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">entity</span> <span class="o">=</span> <span class="kt">UsergridEntity</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="s">"restaurant"</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:[</span><span class="s">"restaurant"</span><span class="p">:</span> <span class="s">"Dino's Deep Dish"</span><span class="p">,</span> <span class="s">"cuisine"</span><span class="p">:</span> <span class="s">"pizza"</span><span class="p">])</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">POST</span><span class="p">(</span><span class="n">entity</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="k">if</span> <span class="k">let</span> <span class="nv">responseEntity</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">entity</span> <span class="p">{</span>
+        <span class="n">responseEntity</span><span class="p">[</span><span class="s">"owner"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"Mia Carrara"</span>
+        <span class="kt">Usergrid</span><span class="o">.</span><span class="kt">PUT</span><span class="p">(</span><span class="n">responseEntity</span><span class="p">)</span> <span class="p">{</span> <span class="p">(</span><span class="n">response</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span> <span class="k">in</span>
+            <span class="c1">// entity now has the property 'owner'</span>
+        <span class="p">}</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="c1">// or update a set of entities by passing a UsergridQuery object</span>
+
+<span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"restaurants"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"cuisine"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"italian"</span><span class="p">)</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">PUT</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:</span> <span class="p">[</span><span class="s">"keywords"</span><span class="p">:[</span><span class="s">"pasta"</span><span class="p">]])</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+
+    <span class="cm">/* the first 10 entities matching this query criteria will be updated:
+    e.g.:
+        [
+            {
+                "type": "restaurant",
+                "restaurant": "Il Tarazzo",
+                "cuisine": "italian",
+                "keywords": ["pasta"]
+            },
+            {
+                "type": "restaurant",
+                "restaurant": "Cono Sur Pizza &amp; Pasta",
+                "cuisine": "italian",
+                "keywords": ["pasta"]
+            }
+        ]
+    */</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#delete' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='delete'>DELETE</h3>
+
+<p>DELETE requests require either a specific entity or a <code>UsergridQuery</code> object to be passed as an argument.</p>
+
+<ul>
+<li>To delete a specific entity in a collection by uuid or name:</li>
+</ul>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">DELETE</span><span class="p">(</span><span class="s">"collection"</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span> <span class="s">"&lt;uuid-or-name&gt;"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// if successful, entity will now be deleted</span>
+<span class="p">})</span>
+</code></pre>
+
+<ul>
+<li>To specific entities in a collection to delete by passing a <code>UsergridQuery</code> object:</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"black"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">or</span><span class="p">()</span>
+                                 <span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"white"</span><span class="p">)</span>
+
+<span class="c1">// this will build out the following query:</span>
+<span class="c1">// select * where color = 'black' or color = 'white'</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">DELETE</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// the first 10 entities matching this query criteria will be deleted</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#entity_operations_and_convenience_methods' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='entity_operations_and_convenience_methods'>Entity operations and convenience methods</h2>
+
+<p><code>UsergridEntity</code> has a number of helper/convenience methods to make working with entities more convenient.</p>
+<a href='#reload' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='reload'>reload()</h3>
+
+<p>Reloads the entity from the server:</p>
+<pre class="highlight swift"><code><span class="n">entity</span><span class="o">.</span><span class="nf">reload</span><span class="p">()</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entity is now reloaded from the server</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#save' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='save'>save()</h3>
+
+<p>Saves (or creates) the entity on the server:</p>
+<pre class="highlight swift"><code><span class="n">entity</span><span class="p">[</span><span class="s">"aNewProperty"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"A new value"</span>
+<span class="n">entity</span><span class="o">.</span><span class="nf">save</span><span class="p">()</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entity is now updated on the server</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#remove' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='remove'>remove()</h3>
+
+<p>Deletes the entity from the server:</p>
+<pre class="highlight swift"><code><span class="n">entity</span><span class="o">.</span><span class="nf">remove</span><span class="p">()</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entity is now deleted on the server and the local instance should be destroyed</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#authentication_current_user_and_auth_fallback' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='authentication_current_user_and_auth_fallback'>Authentication, current user, and auth-fallback</h2>
+<a href='#appauth_and_authenticateapp' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='appauth_and_authenticateapp'>appAuth and authenticateApp()</h3>
+
+<p><code>Usergrid</code> can use the app client ID and secret that were passed upon initialization and automatically retrieve an app-level token for these credentials.</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">setAppAuth</span><span class="p">(</span><span class="s">"&lt;client-id&gt;"</span><span class="p">,</span> <span class="s">"&lt;client-secret&gt;"</span><span class="p">)</span>
+<span class="kt">Usergrid</span><span class="o">.</span><span class="nf">authenticateApp</span><span class="p">()</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// Usergrid.appAuth is authenticated automatically when this call is successful</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#currentuser_userauth_and_authenticateuser' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='currentuser_userauth_and_authenticateuser'>currentUser, userAuth,  and authenticateUser()</h3>
+
+<p><code>Usergrid</code> has a special <code>currentUser</code> property. </p>
+
+<blockquote>
+<p>The current user is stored within the keychain so app relaunches will persist the user&rsquo;s login and token information.  To adjust this feature edit the <code>Usergrid.persistCurrentUserInKeychain</code> property upon initialization.</p>
+</blockquote>
+
+<p>By default, when calling <code>authenticateUser()</code>, <code>.currentUser</code> will be set to this user if the authentication flow is successful.</p>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">userAuth</span> <span class="o">=</span> <span class="kt">UsergridUserAuth</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span> <span class="s">"&lt;username&gt;"</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span> <span class="s">"&lt;password&gt;"</span><span class="p">)</span>
+<span class="kt">Usergrid</span><span class="o">.</span><span class="nf">authenticateUser</span><span class="p">(</span><span class="n">userAuth</span><span class="p">)</span> <span class="p">{</span> <span class="n">auth</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">error</span> <span class="k">in</span>
+    <span class="c1">// Usergrid.currentUser is set to the authenticated user and the token is stored within that context</span>
+<span class="p">}</span>
+</code></pre>
+
+<p>If you want to utilize authenticateUser without setting as the current user, simply pass a <code>false</code> boolean value as the second parameter:</p>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">userAuth</span> <span class="o">=</span> <span class="kt">UsergridUserAuth</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span> <span class="s">"&lt;username&gt;"</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span> <span class="s">"&lt;password&gt;"</span><span class="p">)</span>
+<span class="kt">Usergrid</span><span class="o">.</span><span class="nf">authenticateUser</span><span class="p">(</span><span class="n">userAuth</span><span class="p">,</span><span class="nv">setAsCurrentUser</span><span class="p">:</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span> <span class="n">auth</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">error</span> <span class="k">in</span>
+    <span class="c1">// user is authenticated but Usergrid.currentUser is not set.</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#authfallback' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='authfallback'>authFallback</h3>
+
+<p>Auth-fallback defines what the client should do when a user token is not present. </p>
+
+<p>By default, <code>Usergrid.authFallback</code> is set to <code>.None</code>, whereby when a token is <em>not</em> present, an API call will be performed unauthenticated. </p>
+
+<p>If instead <code>Usergrid.authFallback</code> is set to <code>.App</code>, the API call will instead be performed using client credentials, <em>if</em> they&rsquo;re available (i.e. <code>authenticateApp()</code> was performed at some point). </p>
+<a href='#usingauth' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='usingauth'>usingAuth()</h3>
+
+<p>At times it is desireable to have complete, granular control over the authentication context of an API call. </p>
+
+<p>To facilitate this, the passthrough function <code>.usingAuth()</code> allows you to pre-define the auth context of the next API call.</p>
+<pre class="highlight swift"><code><span class="c1">// assume Usergrid.authFallback = .None</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="nf">usingAuth</span><span class="p">(</span><span class="kt">Usergrid</span><span class="o">.</span><span class="n">appAuth</span><span class="o">!</span><span class="p">)</span><span class="o">.</span><span class="kt">POST</span><span class="p">(</span><span class="s">"roles/guest/permissions"</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:</span> <span class="p">[</span><span class="s">"permission"</span> <span class="p">:</span> <span class="s">"get,post,put,delete:/**"</span><span class="p">]</span> <span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// here we've temporarily used the client credentials to modify permissions</span>
+    <span class="c1">// subsequent calls will not use this auth context</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#user_operations_and_convenience_methods' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='user_operations_and_convenience_methods'>User operations and convenience methods</h2>
+
+<p><code>UsergridUser</code> has a number of helper/convenience methods to make working with user entities more convenient. If you are <em>not</em> utilizing the <code>Usergrid</code> shared instance, you must pass an instance of <code>UsergridClient</code> as the first argument to any of these helper methods.</p>
+<a href='#create' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='create'>create()</h3>
+
+<p>Creating a new user:</p>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">user</span> <span class="o">=</span> <span class="kt">UsergridUser</span><span class="p">(</span><span class="nv">username</span><span class="p">:</span> <span class="s">"username"</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span> <span class="s">"password"</span><span class="p">)</span>
+<span class="n">user</span><span class="o">.</span><span class="nf">create</span><span class="p">()</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// user has now been created and should have a valid uuid</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#login' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='login'>login()</h3>
+
+<p>A simpler means of retrieving a user-level token:</p>
+<pre class="highlight swift"><code><span class="n">user</span><span class="o">.</span><span class="nf">login</span><span class="p">(</span><span class="s">"username"</span><span class="p">,</span> <span class="nv">password</span><span class="p">:</span> <span class="s">"password"</span><span class="p">)</span> <span class="p">{</span> <span class="n">auth</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">error</span> <span class="k">in</span>
+    <span class="c1">// user is now logged in</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#logout' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='logout'>logout()</h3>
+
+<p>Logs out the selected user. You can also use this convenience method on <code>Usergrid.currentUser</code>.</p>
+<pre class="highlight swift"><code><span class="n">user</span><span class="o">.</span><span class="nf">logout</span><span class="p">()</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// user is now logged out</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#resetpassword' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='resetpassword'>resetPassword()</h3>
+
+<p>Resets the password for the selected user.</p>
+<pre class="highlight swift"><code><span class="n">user</span><span class="o">.</span><span class="nf">resetPassword</span><span class="p">(</span><span class="s">"oldPassword"</span><span class="p">,</span> <span class="nv">new</span><span class="p">:</span> <span class="s">"newPassword"</span><span class="p">)</span> <span class="p">{</span> <span class="n">error</span><span class="p">,</span> <span class="n">didSucceed</span> <span class="k">in</span>
+    <span class="c1">// if it was done correctly, the new password will be changed</span>
+    <span class="c1">// 'didSucceed' is a boolean value that indicates whether it was changed successfully</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#usergriduser_checkavailable' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='usergriduser_checkavailable'>UsergridUser.CheckAvailable()</h3>
+
+<p>This is a class (static) method that allows you to check whether a username or email address is available or not.</p>
+<pre class="highlight swift"><code><span class="kt">UsergridUser</span><span class="o">.</span><span class="nf">checkAvailable</span><span class="p">(</span><span class="s">"email"</span><span class="p">,</span> <span class="nv">username</span><span class="p">:</span> <span class="kc">nil</span><span class="p">)</span> <span class="p">{</span> <span class="n">error</span><span class="p">,</span> <span class="n">available</span> <span class="k">in</span>
+    <span class="c1">// 'available' == whether an email already exists for a user</span>
+<span class="p">}</span>
+
+<span class="kt">UsergridUser</span><span class="o">.</span><span class="nf">checkAvailable</span><span class="p">(</span><span class="kc">nil</span><span class="p">,</span> <span class="nv">username</span><span class="p">:</span> <span class="s">"username"</span><span class="p">)</span> <span class="p">{</span> <span class="n">error</span><span class="p">,</span> <span class="n">available</span> <span class="k">in</span>
+    <span class="c1">// 'available' == whether an username already exists for a user</span>
+<span class="p">}</span>
+
+<span class="kt">UsergridUser</span><span class="o">.</span><span class="nf">checkAvailable</span><span class="p">(</span><span class="s">"email"</span><span class="p">,</span> <span class="nv">username</span><span class="p">:</span> <span class="s">"username"</span><span class="p">)</span> <span class="p">{</span> <span class="n">error</span><span class="p">,</span> <span class="n">available</span> <span class="k">in</span>
+    <span class="c1">// 'available' == whether an email or username already exist for a user</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#querying_and_filtering_data' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='querying_and_filtering_data'>Querying and filtering data</h2>
+<a href='#usergridquery_initialization' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='usergridquery_initialization'>UsergridQuery initialization</h3>
+
+<p>The <code>UsergridQuery</code> class allows you to build out complex query filters using the Usergrid <a href="http://docs.apigee.com/app-services/content/querying-your-data">query syntax</a>.</p>
+
+<p>The first parameter of the <code>UsergridQuery</code> builder pattern should be the collection (or type) you intend to query. You can either pass this as an argument, or as the first builder object:</p>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span>
+<span class="c1">// or</span>
+<span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">()</span><span class="o">.</span><span class="nf">collection</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span>
+</code></pre>
+
+<p>You then can layer on additional queries:</p>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">gt</span><span class="p">(</span><span class="s">"weight"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="mf">2.4</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">contains</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="s">"bl*"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">not</span><span class="p">()</span>
+                                 <span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"white"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">or</span><span class="p">()</span>
+                                 <span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"orange"</span><span class="p">)</span>
+</code></pre>
+
+<p>You can also adjust the number of results returned:</p>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="s">"black"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">limit</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
+
+<span class="c1">// returns a maximum of 100 entiteis</span>
+</code></pre>
+
+<p>And sort the results:</p>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="s">"black"</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">limit</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
+                                 <span class="o">.</span><span class="nf">asc</span><span class="p">(</span><span class="s">"name"</span><span class="p">)</span>
+
+<span class="c1">// sorts by 'name', ascending</span>
+</code></pre>
+
+<p>And you can do geo-location queries:</p>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"devices"</span><span class="p">)</span><span class="o">.</span><span class="nf">locationWithin</span><span class="p">(</span><span class="o">&lt;</span><span class="n">distance</span><span class="o">&gt;</span><span class="p">,</span> <span class="nv">latitude</span><span class="p">:</span> <span class="o">&lt;</span><span class="n">lat</span><span class="o">&gt;</span><span class="p">,</span> <span class="nv">longitude</span><span class="p">:</span> <span class="o">&lt;</span><span class="n">long</span><span class="o">&gt;</span><span class="p">)</span>
+</code></pre>
+<a href='#using_a_query_in_a_request' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='using_a_query_in_a_request'>Using a query in a request</h3>
+
+<p>Queries can be passed as parameters to GET, PUT, and DELETE requests:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"type"</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span> <span class="n">query</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// Gets entities of a given type matching the query.</span>
+<span class="p">}</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">PUT</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="nv">jsonBody</span><span class="p">:</span> <span class="p">[</span><span class="s">"aNewProperty"</span><span class="p">:</span><span class="s">"A new value"</span><span class="p">])</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// Updates the entities matching the query with the new property.</span>
+<span class="p">}</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">DELETE</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// Deletes entities of a given type matching the query.</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#list_of_query_builder_objects' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='list_of_query_builder_objects'>List of query builder objects</h3>
+
+<p><code>type(&quot;string&quot;)</code></p>
+
+<blockquote>
+<p>The collection name to query</p>
+</blockquote>
+
+<p><code>collection(&quot;string&quot;)</code></p>
+
+<blockquote>
+<p>An alias for <code>type</code></p>
+</blockquote>
+
+<p><code>eq(&quot;key&quot;, value: &quot;value&quot;)</code> or 
+<code>equals(&quot;key&quot;, value: &quot;value&quot;)</code> or 
+<code>filter(&quot;key&quot;, value: &quot;value&quot;)</code> </p>
+
+<blockquote>
+<p>Equal to (e.g. <code>where color = &#39;black&#39;</code>)</p>
+</blockquote>
+
+<p><code>contains(&quot;key&quot;, value: &quot;value&quot;)</code> or
+<code>containsString(&quot;key&quot;, value: &quot;value&quot;)</code> or
+<code>containsWord(&quot;key&quot;, value: &quot;value&quot;)</code></p>
+
+<blockquote>
+<p>Contains a string (e.g.<code>where color contains &#39;bl*&#39;</code>)</p>
+</blockquote>
+
+<p><code>gt(&quot;key&quot;, value: &quot;value&quot;)</code> or
+<code>greaterThan(&quot;key&quot;, value: &quot;value&quot;)</code></p>
+
+<blockquote>
+<p>Greater than (e.g. <code>where weight &gt; 2.4</code>)</p>
+</blockquote>
+
+<p><code>gte(&quot;key&quot;, value: &quot;value&quot;)</code> or 
+<code>greaterThanOrEqual(&quot;key&quot;, value: &quot;value&quot;)</code></p>
+
+<blockquote>
+<p>Greater than or equal to (e.g. <code>where weight &gt;= 2.4</code>)</p>
+</blockquote>
+
+<p><code>lt(&quot;key&quot;, value: &quot;value&quot;)</code> or <code>lessThan(&quot;key&quot;, value: &quot;value&quot;)</code></p>
+
+<blockquote>
+<p>Less than (e.g. <code>where weight &lt; 2.4</code>)</p>
+</blockquote>
+
+<p><code>lte(&quot;key&quot;, value: &quot;value&quot;)</code> or <code>lessThanOrEqual(&quot;key&quot;, value: &quot;value&quot;)</code></p>
+
+<blockquote>
+<p>Less than or equal to (e.g. <code>where weight &lt;= 2.4</code>)</p>
+</blockquote>
+
+<p><code>not()</code></p>
+
+<blockquote>
+<p>Negates the next block in the builder pattern, e.g.:</p>
+</blockquote>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">not</span><span class="p">()</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="s">"black"</span><span class="p">)</span>
+<span class="c1">// select * from cats where not color = 'black'</span>
+</code></pre>
+
+<p><code>and()</code></p>
+
+<blockquote>
+<p>Joins two queries by requiring both of them. <code>and</code> is also implied when joining two queries <em>without</em> an operator. E.g.:</p>
+</blockquote>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"black"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"fur"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"longHair"</span><span class="p">)</span>
+<span class="c1">// is identical to:</span>
+<span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"black"</span><span class="p">)</span><span class="o">.</span><span class="nf">and</span><span class="p">()</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"fur"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span><span class="s">"longHair"</span><span class="p">)</span>  
+</code></pre>
+
+<p><code>or()</code></p>
+
+<blockquote>
+<p>Joins two queries by requiring only one of them. <code>or</code> is never implied. e.g.:</p>
+</blockquote>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">(</span><span class="s">"cats"</span><span class="p">)</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span><span class="nv">value</span><span class="p">:</span> <span class="s">"black"</span><span class="p">)</span><span class="o">.</span><span class="nf">or</span><span class="p">()</span><span class="o">.</span><span class="nf">eq</span><span class="p">(</span><span class="s">"color"</span><span class="p">,</span> <span class="nv">value</span><span class="p">:</span> <span class="s">"white"</span><span class="p">)</span>
+</code></pre>
+
+<blockquote>
+<p>When using <code>or()</code> and <code>and()</code> operators, <code>and()</code> joins will take precedence over <code>or()</code> joins. You can read more about query operators and precedence <a href="http://docs.apigee.com/api-baas/content/supported-query-operators-data-types">here</a>.</p>
+</blockquote>
+
+<p><code>locationWithin(distanceInMeters, latitude: latitude, longitude: longitude)</code></p>
+
+<blockquote>
+<p>Returns entities which have a location within the specified radius. Arguments can be <code>float</code> or <code>int</code>.</p>
+</blockquote>
+
+<p><code>asc(&quot;key&quot;)</code> or <code>ascending(&quot;key&quot;)</code></p>
+
+<blockquote>
+<p>Sorts the results by the specified property, ascending</p>
+</blockquote>
+
+<p><code>desc(&quot;key&quot;)</code> or <code>descending(&quot;key&quot;)</code></p>
+
+<blockquote>
+<p>Sorts the results by the specified property, descending</p>
+</blockquote>
+
+<p><code>sort(&quot;key&quot;, value: .Asc)</code></p>
+
+<blockquote>
+<p>Sorts the results by the specified property, in the specified <code>UsergridQuerySortOrder</code> (<code>.Asc</code> or <code>.Desc</code>).</p>
+</blockquote>
+
+<p><code>limit(int)</code></p>
+
+<blockquote>
+<p>The maximum number of entities to return</p>
+</blockquote>
+
+<p><code>cursor(&quot;string&quot;)</code></p>
+
+<blockquote>
+<p>A pagination cursor string</p>
+</blockquote>
+
+<p><code>fromString(&quot;query string&quot;)</code></p>
+
+<blockquote>
+<p>A special builder property that allows you to input a pre-defined query string. All builder properties will be ignored when this property is defined. For example:</p>
+</blockquote>
+<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">query</span> <span class="o">=</span> <span class="kt">UsergridQuery</span><span class="p">()</span><span class="o">.</span><span class="nf">fromString</span><span class="p">(</span><span class="s">"select * where color = 'black' order by name asc"</span><span class="p">)</span>
+</code></pre>
+<a href='#usergridresponse_object' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='usergridresponse_object'>UsergridResponse object</h2>
+
+<p><code>UsergridResponse</code> is the core class that handles both successful and unsuccessful HTTP responses from Usergrid. </p>
+
+<p>If a request is successful, any entities returned in the response will be automatically parsed into <code>UsergridEntity</code> objects and pushed to the <code>entities</code> property.</p>
+
+<p>If a request fails, the <code>error</code> property will contain information about the problem encountered.</p>
+<a href='#ok' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='ok'>ok</h3>
+
+<p>You can check <code>UsergridResponse.ok</code>, a <code>Bool</code> value, to see if the response was successful. Any status code <code>&lt; 400</code> returns true.</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"collection"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">ok</span> <span class="p">{</span>
+        <span class="c1">// woo!</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#entity_entities_user_users_first_last' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='entity_entities_user_users_first_last'>entity, entities, user, users, first, last</h3>
+
+<p>Depending on the call you make, any entities returned in the response will be automatically parsed into <code>UsergridEntity</code> objects and pushed to the <code>entities</code> property. If you&rsquo;re querying the <code>users</code> collection, these will also be <code>UsergridUser</code> objects, a subclass of <code>UsergridEntity</code>.</p>
+
+<ul>
+<li><p><code>.first</code> returns the first entity in an array of entities; <code>.entity</code> is an alias to <code>.first</code>. If there are no entities, both of these will be undefined.</p></li>
+<li><p><code>.last</code> returns the last entity in an array of entities; if there is only one entity in the array, this will be the same as <code>.first</code> <em>and</em> <code>.entity</code>, and will be undefined if there are no entities in the response.</p></li>
+<li><p><code>.entities</code> will either be an array of entities in the response, or an empty array.</p></li>
+<li><p><code>.user</code> is a special alias for <code>.entity</code> for when querying the <code>users</code> collection. Instead of being a <code>UsergridEntity</code>, it will be its subclass, <code>UsergridUser</code>.</p></li>
+<li><p><code>.users</code> is the same as <code>.user</code>, though behaves as <code>.entities</code> does by returning either an array of UsergridUser objects or an empty array.</p></li>
+</ul>
+
+<p>Examples:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"collection"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// you can access:</span>
+    <span class="c1">//     response.entities (the returned entities)</span>
+    <span class="c1">//     response.first (the first entity)</span>
+    <span class="c1">//     response.entity (same as response.first)</span>
+    <span class="c1">//     response.last (the last entity returned)</span>
+<span class="p">}</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"collection"</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="s">"&lt;uuid-or-name&gt;"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// you can access:</span>
+    <span class="c1">//     response.entity (the returned entity) </span>
+    <span class="c1">//     response.entities (containing only the returned entity)</span>
+    <span class="c1">//     response.first (same as response.entity)</span>
+    <span class="c1">//     response.last (same as response.entity)</span>
+<span class="p">}</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"users"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// you can access:</span>
+    <span class="c1">//     response.users (the returned users)</span>
+    <span class="c1">//     response.entities (same as response.users)</span>
+    <span class="c1">//     response.user (the first user)    </span>
+    <span class="c1">//     response.entity (same as response.user)   </span>
+    <span class="c1">//     response.first (same as response.user)  </span>
+    <span class="c1">//     response.last (the last user)</span>
+<span class="p">}</span>
+
+<span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"users"</span><span class="p">,</span> <span class="nv">uuidOrName</span><span class="p">:</span><span class="s">"&lt;uuid-or-name&gt;"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// you can access;</span>
+    <span class="c1">//     response.users (containing only the one user)</span>
+    <span class="c1">//     response.entities (same as response.users)</span>
+    <span class="c1">//     response.user (the returned user)    </span>
+    <span class="c1">//     response.entity (same as response.user)   </span>
+    <span class="c1">//     response.first (same as response.user)  </span>
+    <span class="c1">//     response.last (same as response.user)  </span>
+<span class="p">}</span>
+</code></pre>
+<a href='#connections' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='connections'>Connections</h2>
+
+<p>Connections can be managed using <code>Usergrid.connect()</code>, <code>Usergrid.disconnect()</code>, and <code>Usergrid.getConnections()</code>, or entity convenience methods of the same name. </p>
+
+<p>When retrieving connections via <code>Usergrid.getConnections()</code>, you can pass in a optional <code>UsergridQuery</code> object in order to filter the connectioned entities returned.</p>
+<a href='#connect' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='connect'>Connect</h3>
+
+<p>Create a connection between two entities:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">connect</span><span class="p">(</span><span class="n">entity1</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span> <span class="s">"relationship"</span><span class="p">,</span> <span class="nv">to</span><span class="p">:</span> <span class="n">entity2</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entity1 now has an outbound connection to entity2</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#retrieve_connections' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='retrieve_connections'>Retrieve Connections</h3>
+
+<p>Retrieve outbound connections:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">getConnections</span><span class="p">(</span><span class="o">.</span><span class="kt">Out</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span> <span class="n">entity1</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span> <span class="s">"relationship"</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span> <span class="kc">nil</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entities is an array of entities that entity1 is connected to via 'relationship'</span>
+    <span class="c1">// in this case, we'll see entity2 in the array</span>
+<span class="p">}</span>
+</code></pre>
+
+<p>Retrieve inbound connections:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">getConnections</span><span class="p">(</span><span class="o">.</span><span class="kt">In</span><span class="p">,</span> <span class="nv">entity</span><span class="p">:</span> <span class="n">entity2</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span> <span class="s">"relationship"</span><span class="p">,</span> <span class="nv">query</span><span class="p">:</span> <span class="kc">nil</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entities is an array of entities that connect to entity2 via 'relationship'</span>
+    <span class="c1">// in this case, we'll see entity1 in the array</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#disconnect' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='disconnect'>Disconnect</h3>
+
+<p>Delete a connection between two entities:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">disconnect</span><span class="p">(</span><span class="n">entity1</span><span class="p">,</span> <span class="nv">relationship</span><span class="p">:</span> <span class="s">"relationship"</span><span class="p">,</span> <span class="nv">from</span><span class="p">:</span> <span class="n">entity2</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="c1">// entity1's outbound connection to entity2 has been destroyed</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#assets' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='assets'>Assets</h2>
+
+<p>Assets can be uploaded and downloaded either directly using <code>Usergrid.uploadAsset()</code> or <code>Usergrid.downloadAsset()</code>, or via <code>UsergridEntity</code> convenience methods with the same names. Before uploading an asset, you will need to initialize a <code>UsergridAsset</code> instance.</p>
+<a href='#initialization' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='initialization'>Initialization</h3>
+
+<p><em>Note: When initializing a <code>UsergridAsset</code> object specifying a file name is optional.</em></p>
+
+<ul>
+<li>Using NSData:</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">image</span> <span class="o">=</span> <span class="kt">UIImage</span><span class="p">(</span><span class="nv">contentsOfFile</span><span class="p">:</span> <span class="s">"path/to/image"</span><span class="p">)</span>
+<span class="k">let</span> <span class="nv">data</span> <span class="o">=</span> <span class="kt">UIImagePNGRepresentation</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
+<span class="k">let</span> <span class="nv">asset</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span><span class="s">"&lt;file-name-or-nil&gt;"</span><span class="p">,</span> <span class="nv">data</span><span class="p">:</span> <span class="n">data</span><span class="o">!</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="s">"image/png"</span><span class="p">)</span>
+</code></pre>
+
+<ul>
+<li>Using an UIImage object:</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">image</span> <span class="o">=</span> <span class="kt">UIImage</span><span class="p">(</span><span class="nv">contentsOfFile</span><span class="p">:</span> <span class="s">"path/to/image"</span><span class="p">)</span>
+<span class="k">let</span> <span class="nv">asset</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span><span class="s">"&lt;file-name-or-nil&gt;"</span><span class="p">,</span> <span class="nv">image</span><span class="p">:</span> <span class="n">image</span><span class="o">!</span><span class="p">,</span> <span class="nv">imageContentType</span><span class="p">:</span> <span class="o">.</span><span class="kt">Png</span><span class="p">)</span>
+</code></pre>
+
+<ul>
+<li>Using a file URL:</li>
+</ul>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">fileUrl</span> <span class="o">=</span> <span class="kt">NSURL</span><span class="p">(</span><span class="nv">string</span><span class="p">:</span> <span class="s">"local/path/to/file"</span><span class="p">)</span>
+<span class="k">if</span> <span class="n">fileUrl</span><span class="o">.</span><span class="nf">isFileReferenceURL</span><span class="p">()</span> <span class="p">{</span>  <span class="c1">// This must be a file reference url.</span>
+    <span class="k">let</span> <span class="nv">asset</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span><span class="s">"&lt;file-name-or-nil&gt;"</span><span class="p">,</span> <span class="nv">fileUrl</span><span class="p">:</span> <span class="n">fileUrl</span><span class="o">!</span><span class="p">,</span> <span class="nv">contentType</span><span class="p">:</span><span class="s">"&lt;content-type&gt;"</span><span class="p">)</span>
+<span class="p">}</span>
+</code></pre>
+<a href='#uploading' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='uploading'>Uploading</h3>
+
+<p>Upload an image and connect it to an entity:</p>
+<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">image</span> <span class="o">=</span> <span class="kt">UIImage</span><span class="p">(</span><span class="nv">contentsOfFile</span><span class="p">:</span> <span class="s">"path/to/image"</span><span class="p">)</span>
+<span class="k">let</span> <span class="nv">asset</span> <span class="o">=</span> <span class="kt">UsergridAsset</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span><span class="s">"&lt;file-name-or-nil&gt;"</span><span class="p">,</span> <span class="nv">image</span><span class="p">:</span> <span class="n">image</span><span class="o">!</span><span class="p">,</span> <span class="nv">imageContentType</span><span class="p">:</span> <span class="o">.</span><span class="kt">Png</span><span class="p">)</span><span class="o">!</span>
+<span class="kt">Usergrid</span><span class="o">.</span><span class="nf">uploadAsset</span><span class="p">(</span><span class="n">entity</span><span class="p">,</span>
+                     <span class="k">as</span><span class="nv">set</span><span class="p">:</span> <span class="k">asset</span><span class="p">,</span>
+                     <span class="nv">progress</span><span class="p">:</span> <span class="p">{</span> <span class="n">bytesFinished</span><span class="p">,</span> <span class="n">bytesExpected</span> <span class="k">in</span>
+                        <span class="c1">// Monitor the upload progress</span>
+                     <span class="p">},</span>
+                     <span class="nv">completion</span><span class="p">:</span> <span class="p">{</span> <span class="k">asset</span><span class="p">,</span> <span class="n">response</span> <span class="k">in</span>
+                        <span class="c1">// The asset is now uploaded to Usergrid and entity.asset == asset</span>
+<span class="p">})</span>
+</code></pre>
+<a href='#downloading' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='downloading'>Downloading</h3>
+
+<p>Download an image which is connected to an entity:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">downloadAsset</span><span class="p">(</span><span class="n">entity</span><span class="p">,</span>
+                       <span class="nv">contentType</span><span class="p">:</span> <span class="s">"&lt;expected-content-type&gt;"</span><span class="p">,</span>
+                       <span class="nv">progress</span><span class="p">:</span> <span class="p">{</span> <span class="n">bytesFinished</span><span class="p">,</span> <span class="n">bytesExpected</span> <span class="k">in</span>
+                            <span class="c1">// Monitor the download progress</span>
+                       <span class="p">},</span>
+                       <span class="nv">completion</span><span class="p">:{</span> <span class="k">asset</span><span class="p">,</span> <span class="n">error</span> <span class="k">in</span>
+                            <span class="c1">// The asset is now downloaded from Usergrid and entity.asset == asset</span>
+<span class="p">})</span>
+</code></pre>
+<a href='#custom_usergridentity_subclasses' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='custom_usergridentity_subclasses'>Custom UsergridEntity Subclasses</h2>
+
+<p>Creating custom subclasses of the base <code>UsergridEntity</code> class (just like <code>UsergridUser</code> and <code>UsergridDevice</code>) is possible.</p>
+
+<blockquote>
+<p>For a working example of creating a custom subclass refer to the ActivityFeed sample app located in the <code>/Samples</code> folder.  The custom subclass there is named <code>ActivityEntity</code>.</p>
+</blockquote>
+
+<ul>
+<li>To do so, subclass <code>UsergridEntity</code> and implement the required methods:</li>
+</ul>
+<pre class="highlight swift"><code><span class="kd">import</span> <span class="kt">UsergridSDK</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="kt">ActivityEntity</span><span class="p">:</span> <span class="kt">UsergridEntity</span> <span class="p">{</span>
+
+    <span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">propertyDict</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">AnyObject</span><span class="p">]?)</span> <span class="p">{</span>
+        <span class="k">super</span><span class="o">.</span><span class="nf">init</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="n">type</span><span class="p">,</span> <span class="nv">name</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> <span class="nv">propertyDict</span><span class="p">:</span> <span class="n">propertyDict</span><span class="p">)</span>
+    <span class="p">}</span>
+
+    <span class="kd">required</span> <span class="kd">public</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span> <span class="p">{</span>
+        <span class="k">super</span><span class="o">.</span><span class="nf">init</span><span class="p">(</span><span class="nv">coder</span><span class="p">:</span> <span class="n">aDecoder</span><span class="p">)</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+</code></pre>
+
+<ul>
+<li>You will also need to register the custom subclass:</li>
+</ul>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="nf">initSharedInstance</span><span class="p">(</span><span class="nv">orgId</span><span class="p">:</span> <span class="s">"orgId"</span><span class="p">,</span> <span class="nv">appId</span><span class="p">:</span> <span class="s">"appId"</span><span class="p">)</span>
+<span class="kt">UsergridEntity</span><span class="o">.</span><span class="nf">mapCustomType</span><span class="p">(</span><span class="s">"activity"</span><span class="p">,</span> <span class="nv">toSubclass</span><span class="p">:</span> <span class="kt">ActivityEntity</span><span class="o">.</span><span class="k">self</span><span class="p">)</span>
+</code></pre>
+
+<p>By registering your custom subclass, the <code>UsergridEntity</code> and <code>UsergridResponse</code> classes are able to generate instances of these classes based on the an entities <code>type</code>.</p>
+
+<p>In the above example, entities which have a <code>type</code> value of <code>activity</code> can now be cast as <code>ActivityEntity</code> objects. e.g.:</p>
+<pre class="highlight swift"><code><span class="kt">Usergrid</span><span class="o">.</span><span class="kt">GET</span><span class="p">(</span><span class="s">"activity"</span><span class="p">)</span> <span class="p">{</span> <span class="n">response</span> <span class="k">in</span>
+    <span class="k">var</span> <span class="nv">activityEntities</span><span class="p">:</span> <span class="p">[</span><span class="kt">ActivityEntity</span><span class="p">]?</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">entities</span> <span class="k">as?</span> <span class="p">[</span><span class="kt">ActivityEntity</span><span class="p">]</span>
+<span class="p">}</span>
+</code></pre>
 
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2015 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2015-12-18)</p>
-          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.3.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
+          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
     </div>
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js
index a32d400..4ff9455 100755
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js
@@ -17,7 +17,7 @@
 });
 
 // On token click, toggle its discussion and animate token.marginLeft
-$(".token").click(function() {
+$(".token").click(function(event) {
   if (window.jazzy.docset) {
     return;
   }
@@ -28,4 +28,13 @@
   link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
   $content = link.parent().parent().next();
   $content.slideToggle(animationDuration);
+
+  // Keeps the document from jumping to the hash.
+  var href = $(this).attr('href');
+  if (history.pushState) {
+    history.pushState({}, '', href);
+  } else {
+    location.hash = href;
+  }
+  event.preventDefault();
 });
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/undocumented.txt b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/undocumented.txt
index f671946..e69de29 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/undocumented.txt
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/Documents/undocumented.txt
@@ -1,11 +0,0 @@
-UsergridAuth.swift
-	override public init() { }
-	required public init?(coder aDecoder: NSCoder)
-	public func encodeWithCoder(aCoder: NSCoder)
-	required public init?(coder aDecoder: NSCoder)
-	override public func encodeWithCoder(aCoder: NSCoder)
-	required public init?(coder aDecoder: NSCoder)
-	override public func encodeWithCoder(aCoder: NSCoder)
-UsergridEntity.swift
-	public init(type:String, name:String? = nil, propertyDict:[String:AnyObject]? = nil)
-	public class func entity(jsonDict jsonDict: [String:AnyObject]) -> UsergridEntity?
diff --git a/sdks/swift/docs/docsets/.docset/Contents/Resources/docSet.dsidx b/sdks/swift/docs/docsets/.docset/Contents/Resources/docSet.dsidx
index a87c29b..15754e6 100644
--- a/sdks/swift/docs/docsets/.docset/Contents/Resources/docSet.dsidx
+++ b/sdks/swift/docs/docsets/.docset/Contents/Resources/docSet.dsidx
Binary files differ
diff --git a/sdks/swift/docs/docsets/.tgz b/sdks/swift/docs/docsets/.tgz
index 045daf9..453a706 100644
--- a/sdks/swift/docs/docsets/.tgz
+++ b/sdks/swift/docs/docsets/.tgz
Binary files differ
diff --git a/sdks/swift/docs/index.html b/sdks/swift/docs/index.html
index 91cbf58..b49cde5 100644
--- a/sdks/swift/docs/index.html
+++ b/sdks/swift/docs/index.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="en">
   <head>
-    <title>UsergridSDK  Reference</title>
+    <title>  Reference</title>
     <link rel="stylesheet" type="text/css" href="css/jazzy.css" />
     <link rel="stylesheet" type="text/css" href="css/highlight.css" />
     <meta charset='utf-8'>
@@ -10,17 +10,17 @@
     
   </head>
   <body>
-    <a title="UsergridSDK  Reference"></a>
+    <a title="  Reference"></a>
     <header>
       <div class="content-wrapper">
-        <p><a href="index.html">UsergridSDK Docs</a> (100% documented)</p>
+        <p><a href="index.html"> Docs</a> (100% documented)</p>
       </div>
     </header>
     <div class="content-wrapper">
       <p id="breadcrumbs">
-        <a href="index.html">UsergridSDK Reference</a>
+        <a href="index.html"> Reference</a>
         <img id="carat" src="img/carat.png" />
-        UsergridSDK  Reference
+          Reference
       </p>
     </div>
     <div class="content-wrapper">
@@ -91,7 +91,7 @@
             <a href="Enums.html">Enums</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
-                <a href="Enums/UsergridAuthFallback.html">UsergridAuthFallback</a>
+                <a href="Enums/UsergridAuthMode.html">UsergridAuthMode</a>
               </li>
               <li class="nav-group-task">
                 <a href="Enums/UsergridDeviceProperties.html">UsergridDeviceProperties</a>
@@ -120,6 +120,14 @@
             </ul>
           </li>
           <li class="nav-group-name">
+            <a href="Extensions.html">Extensions</a>
+            <ul class="nav-group-tasks">
+              <li class="nav-group-task">
+                <a href="Extensions/NSDate.html">NSDate</a>
+              </li>
+            </ul>
+          </li>
+          <li class="nav-group-name">
             <a href="Typealiases.html">Typealiases</a>
             <ul class="nav-group-tasks">
               <li class="nav-group-task">
@@ -850,7 +858,7 @@
                      <span class="nv">progress</span><span class="p">:</span> <span class="p">{</span> <span class="n">bytesFinished</span><span class="p">,</span> <span class="n">bytesExpected</span> <span class="k">in</span>
                         <span class="c1">// Monitor the upload progress</span>
                      <span class="p">},</span>
-                     <span class="nv">completion</span><span class="p">:</span> <span class="p">{</span> <span class="n">response</span><span class="p">,</span> <span class="k">asset</span><span class="p">,</span> <span class="n">error</span> <span class="k">in</span>
+                     <span class="nv">completion</span><span class="p">:</span> <span class="p">{</span> <span class="k">asset</span><span class="p">,</span> <span class="n">response</span> <span class="k">in</span>
                         <span class="c1">// The asset is now uploaded to Usergrid and entity.asset == asset</span>
 <span class="p">})</span>
 </code></pre>
@@ -909,7 +917,7 @@
           </section>
         </section>
         <section id="footer">
-          <p>&copy; 2016 <a class="link" href="https://github.com/apache/usergrid/tree/master/sdks/swift" target="_blank" rel="external">Robert Walsh</a>. All rights reserved. (Last updated: 2016-02-15)</p>
+          <p>&copy; 2016 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2016-04-14)</p>
           <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
         </section>
       </article>
diff --git a/stack/config/src/main/resources/usergrid-default.properties b/stack/config/src/main/resources/usergrid-default.properties
index 5cd7c7a..4f57cdd 100644
--- a/stack/config/src/main/resources/usergrid-default.properties
+++ b/stack/config/src/main/resources/usergrid-default.properties
@@ -455,12 +455,20 @@
 
 # Set the number of queue consumers to read from the in-region push notification queue.
 #
-usergrid.push.worker_count=8
+usergrid.push.worker_count=2
 
 # Set the sleep time between queue polling ( in milliseconds)
 #
 usergrid.push.sleep=100
 
+# This setting determines the inmemory cache TTL (in minutes) for push notifications queue managers.
+#
+usergrid.push.queuemanager.cache.time-to-live=10
+
+# This setting determines the inmemory cache size (# elements) for push notifications queue managers.
+#
+usergrid.push.queuemanager.cache.size=200
+
 
 
 ###############################  Usergrid Central SSO  #############################
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/ApplicationIdCacheImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/ApplicationIdCacheImpl.java
index 7745359..d327607 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/ApplicationIdCacheImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/ApplicationIdCacheImpl.java
@@ -27,6 +27,7 @@
 import org.apache.usergrid.persistence.Schema;
 import org.apache.usergrid.persistence.collection.EntityCollectionManager;
 import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
+import org.apache.usergrid.persistence.exceptions.PersistenceException;
 import org.apache.usergrid.persistence.model.entity.Id;
 import org.apache.usergrid.persistence.model.entity.SimpleId;
 import org.apache.usergrid.persistence.model.field.StringField;
@@ -65,7 +66,11 @@
             .build(new CacheLoader<String, UUID>() {
                 @Override
                 public UUID load(final String key) throws Exception {
-                    return fetchApplicationId(key);
+                    UUID appId = fetchApplicationId(key);
+                    if ( appId == null ) {
+                        throw new PersistenceException("Error getting applicationId");
+                    }
+                    return appId;
                 }
             });
     }
@@ -76,7 +81,7 @@
             return appCache.get( applicationName.toLowerCase() );
         } catch (Exception e) {
             if (logger.isDebugEnabled()) {
-                logger.debug("Returning for key {} value null", applicationName);
+                logger.debug("Returning for key {} value null due to exception: {}", applicationName, e);
             }
             return null;
         }
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index b74995a..68f5d71 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -651,15 +651,15 @@
      */
     @Override
     public void delete( EntityRef entityRef ) throws Exception {
-        //TODO: since we want the user to mark it and we sweep it later. It should be marked by the graph manager here.
         //Step 1 & 2 Currently to block so we ensure that marking is done immediately
         //If this returns null then nothing was marked null so the entity doesn't exist
         markEntity( entityRef ).toBlocking().lastOrDefault( null );
 
-        //TODO: figure out how to return async call to service tier? Do I not need to?
         //Step 3
         deleteAsync( entityRef );
 
+        decrementEntityCollection( Schema.defaultCollectionName( entityRef.getType() ));
+
     }
 
 
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheFig.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheFig.java
index 0953abd..a99b48e 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheFig.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheFig.java
@@ -33,7 +33,7 @@
     int getCacheSize();
 
     @Key( "usergrid.index_schema_cache_timeout_ms" )
-    @Default( "60000" )
+    @Default( "15000" )
     int getCacheTimeout();
 
 }
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
index fd0b676..d4bade4 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
@@ -19,6 +19,7 @@
 
 
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,7 +50,7 @@
         this.mapManager = mapManager;
         indexSchemaCache = CacheBuilder.newBuilder()
             .maximumSize( indexSchemaCacheFig.getCacheSize() )
-            //.expireAfterWrite( indexSchemaCacheFig.getCacheTimeout(), TimeUnit.MILLISECONDS ) <-- I don't think we want this to expire that quickly.
+            .expireAfterWrite( indexSchemaCacheFig.getCacheTimeout(), TimeUnit.MILLISECONDS )
             .build( new CacheLoader<String, Optional<Map>>() {
                 @Override
                 public Optional<Map> load( final String collectionName ) throws Exception {
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
index a33453e..9509626 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
@@ -226,6 +226,7 @@
                 return Optional.absent();
             }
 
+            // never add "none" because it has special meaning, "none" disables indexing for a type
             fieldsToKeep.remove("none");
 
             defaultProperties.addAll( fieldsToKeep );
diff --git a/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java b/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
index b91b866..6bb44d8 100644
--- a/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
+++ b/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
@@ -17,6 +17,7 @@
 package org.apache.usergrid.utils;
 
 
+import java.text.DecimalFormat;
 import java.util.Arrays;
 
 import org.apache.commons.io.IOUtils;
@@ -169,4 +170,11 @@
         }
         return null;
     }
+
+    public static String readableByteSize(long size) {
+        if(size <= 0) return "0";
+        final String[] units = new String[] { "B", "kB", "MB", "GB", "TB" };
+        int digitGroups = (int) (Math.log10(size)/Math.log10(1024));
+        return new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups];
+    }
 }
diff --git a/stack/core/src/main/resources/usergrid-core-context.xml b/stack/core/src/main/resources/usergrid-core-context.xml
index 4b216e3..ea1cdf6 100644
--- a/stack/core/src/main/resources/usergrid-core-context.xml
+++ b/stack/core/src/main/resources/usergrid-core-context.xml
@@ -60,9 +60,15 @@
         <property name="loadBalancingPolicy" ref="loadBalancingPolicy"/>
 	</bean>
 
+    <util:map id="cassandraCredentials" map-class="java.util.HashMap">
+        <entry key="username" value="${cassandra.username}" />
+        <entry key="password" value="${cassandra.password}" />
+    </util:map>
+
 	<bean id="cassandraCluster" class="me.prettyprint.cassandra.service.ThriftCluster">
 		<constructor-arg value="${cassandra.cluster}" />
 		<constructor-arg ref="cassandraHostConfigurator" />
+        <constructor-arg ref="cassandraCredentials" />
 	</bean>
 
     <bean id="loadBalancingPolicy" class="me.prettyprint.cassandra.connection.DynamicLoadBalancingPolicy"/>
diff --git a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/NodeShardAllocationImpl.java b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/NodeShardAllocationImpl.java
index 0c65912..47b630f 100644
--- a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/NodeShardAllocationImpl.java
+++ b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/NodeShardAllocationImpl.java
@@ -94,7 +94,6 @@
 
         else {
             existingShards = edgeShardSerialization.getShardMetaData( scope, maxShardId, directedEdgeMeta );
-            //logger.info("existing shards has something: {}", existingShards.hasNext());
 
             /**
              * We didn't get anything out of cassandra, so we need to create the minimum shard
@@ -113,8 +112,6 @@
             }
         }
 
-        //logger.info("getShards existing shards: {}", existingShards);
-
         return new ShardEntryGroupIterator( existingShards, graphFig.getShardMinDelta(), shardGroupCompaction, scope,
             directedEdgeMeta );
     }
@@ -240,7 +237,9 @@
 
         final Shard newShard = new Shard( marked.getTimestamp(), createTimestamp, false );
 
-        logger.info( "Allocating new shard {} for edge meta {}", newShard, directedEdgeMeta );
+        if(logger.isTraceEnabled()) {
+            logger.trace("Allocating new shard {} for edge meta {}", newShard, directedEdgeMeta);
+        }
 
         final MutationBatch batch = this.edgeShardSerialization.writeShardMeta( scope, newShard, directedEdgeMeta );
 
diff --git a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupCompactionImpl.java b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupCompactionImpl.java
index b26ee46..0853adb 100644
--- a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupCompactionImpl.java
+++ b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupCompactionImpl.java
@@ -303,9 +303,6 @@
             logger.trace("Finished compacting {} shards and moved {} edges", sourceShards, totalEdgeCount);
         }
 
-        logger.info("Finished compacting {} shards and moved {} edges", sourceShards, totalEdgeCount);
-
-
         resultBuilder.withCopiedEdges( totalEdgeCount ).withSourceShards( sourceShards ).withTargetShard( targetShard );
 
         /**
@@ -351,8 +348,9 @@
             Shard compactedShard = new Shard( targetShard.getShardIndex(), timeService.getCurrentTime(), true );
             compactedShard.setShardEnd(targetShard.getShardEnd());
 
-            logger.info( "Shard has been fully compacted.  Marking shard {} as compacted in Cassandra", compactedShard );
-
+            if(logger.isTraceEnabled()) {
+                logger.trace("Shard has been fully compacted.  Marking shard {} as compacted in Cassandra", compactedShard);
+            }
 
             final MutationBatch updateMark = edgeShardSerialization.writeShardMeta( scope, compactedShard, edgeMeta );
             try {
@@ -402,7 +400,7 @@
         }
         catch ( RejectedExecutionException ree ) {
 
-            //ignore, if this happens we don't care, we're saturated, we can check later
+            // ignore, if this happens we don't care, we're saturated, we can check later
             logger.info( "Rejected audit for shard of scope {} edge, meta {} and group {}", scope, edgeMeta, group );
 
             return Futures.immediateFuture( AuditResult.NOT_CHECKED );
@@ -503,8 +501,10 @@
                  */
                 try {
                     CompactionResult result = compact( scope, edgeMeta, group );
-                    logger.info( "Compaction result for compaction of scope {} with edge meta data of {} and shard group {} is {}",
-                            scope, edgeMeta, group, result );
+                    if(logger.isTraceEnabled()) {
+                        logger.trace("Compaction result for compaction of scope {} with edge meta data of {} and shard group {} is {}",
+                            scope, edgeMeta, group, result);
+                    }
                 }
                 finally {
                     shardCompactionTaskTracker.complete( scope, edgeMeta, group );
@@ -535,8 +535,6 @@
                                      ShardEntryGroup group ) {
             final Long hash = doHash( scope, edgeMeta, group ).hash().asLong();
             final Boolean returned = runningTasks.putIfAbsent( hash, TRUE );
-            //logger.info("hash components are app: {}, edgeMeta: {}, group: {}", scope.getApplication(), edgeMeta, group);
-            //logger.info("checking hash value of: {}, already started: {}", hash, returned );
 
             /**
              * Someone already put the value
diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
index 533314b..6265a33 100644
--- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
+++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
@@ -88,11 +88,11 @@
     int getLocalQuorumTimeout();
 
     @Key( "usergrid.queue.client.connection.timeout")
-    @Default( "1000" ) // 1 second
+    @Default( "5000" ) // 5 seconds
     int getQueueClientConnectionTimeout();
 
     @Key( "usergrid.queue.client.socket.timeout")
-    @Default( "10000" ) // 10 seconds
+    @Default( "20000" ) // 20 seconds
     int getQueueClientSocketTimeout();
 
     @Key( "usergrid.queue.poll.timeshift")
diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java
index de9cac5..93b2fb2 100644
--- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java
+++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QueueManagerFactoryImpl.java
@@ -1,21 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  * Licensed to the Apache Software Foundation (ASF) under one or more
- *  *  contributor license agreements.  The ASF licenses this file to You
- *  * under the Apache License, Version 2.0 (the "License"); you may not
- *  * use this file except in compliance with the License.
- *  * You may obtain a copy of the License at
- *  *
- *  *     http://www.apache.org/licenses/LICENSE-2.0
- *  *
- *  * Unless required by applicable law or agreed to in writing, software
- *  * distributed under the License is distributed on an "AS IS" BASIS,
- *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  * See the License for the specific language governing permissions and
- *  * limitations under the License.  For additional information regarding
- *  * copyright in this work, please see the NOTICE file in the top level
- *  * directory of this distribution.
+ *      http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 package org.apache.usergrid.persistence.queue.impl;
 
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
index 75ed567..b8abe54 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
@@ -248,6 +248,31 @@
 
     }
 
+    @GET
+    @Path("/status/heap")
+    @JSONP
+    @Produces({MediaType.APPLICATION_JSON, "application/javascript"})
+    public ApiResponse getHeapStats(){
+
+        ApiResponse response = createApiResponse();
+
+        ObjectNode node = JsonNodeFactory.instance.objectNode();
+
+        long heapAllocatedSize = Runtime.getRuntime().totalMemory();
+        long heapMaxSize = Runtime.getRuntime().maxMemory();
+        long heapFreeSize = Runtime.getRuntime().freeMemory();
+        long heapUsedSize = heapAllocatedSize - heapFreeSize;
+
+        node.put( "used", org.apache.usergrid.utils.StringUtils.readableByteSize(heapUsedSize) );
+        node.put( "free", org.apache.usergrid.utils.StringUtils.readableByteSize(heapFreeSize) );
+        node.put( "allocated", org.apache.usergrid.utils.StringUtils.readableByteSize(heapAllocatedSize) );
+        node.put( "max", org.apache.usergrid.utils.StringUtils.readableByteSize(heapMaxSize) );
+
+        response.setProperty( "status", node );
+        return response;
+
+    }
+
 
 
     private void dumpMetrics( ObjectNode node ) {
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java
index 5bd895c..1e94832 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java
@@ -91,7 +91,7 @@
      * @throws Exception
      */
     @POST
-    @Path( "{itemName}/_indexes" )
+    @Path( "{itemName}/_index" )
     @Produces({ MediaType.APPLICATION_JSON,"application/javascript"})
     @RequireApplicationAccess
     @JSONP
@@ -153,7 +153,7 @@
     }
 
     @DELETE
-    @Path( "{itemName}/_indexes" )
+    @Path( "{itemName}/_index" )
     @Produces({ MediaType.APPLICATION_JSON,"application/javascript"})
     @RequireApplicationAccess
     @JSONP
@@ -222,10 +222,6 @@
 
         addItemToServiceContext( ui, itemName );
 
-//        final ReIndexRequestBuilder request =
-//            createRequest().withApplicationId( services.getApplicationId() ).withCollection(
-//                String.valueOf( getServiceParameters().get( 0 ) ) ).withDelay( 50, TimeUnit.MILLISECONDS );
-//
         IndexResource indexResource = new IndexResource(injector);
         return indexResource.rebuildIndexesPost( services.getApplicationId().toString(),itemName.getPath(),false,callback );
     }
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/NotificationsIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/NotificationsIT.java
index 61dc419..1655846 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/NotificationsIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/NotificationsIT.java
@@ -78,6 +78,17 @@
 
     @Test
     public void testPaging() throws Exception {
+
+        // this test should work even with indexing turned off for notificaitons collection
+        ArrayList<String> indexingArray = new ArrayList<>(  );
+        indexingArray.add( "none" );
+        Entity payload = new Entity();
+        payload.put( "fields", indexingArray);
+
+        String unIndexedCollectionName = "notifications";
+        app().collection( unIndexedCollectionName ).collection( "_indexes" ).post( payload );
+        refreshIndex();
+
         // create notifier
         Entity notifier = new Entity().chainPut("name", "mynotifier").chainPut("provider", "noop");
 
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
index 8ed2154..db07c3f 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
@@ -136,7 +136,7 @@
 
         try {
 
-            this.pathResource( getOrgAppPath( "testcollections/_indexes" ) ).post( false, payload,
+            this.pathResource( getOrgAppPath( "testcollections/_index" ) ).post( false, payload,
                 new QueryParameters().addParam( "grant_type", "client_credentials" ).addParam( "client_id",
                     String.valueOf( ( ( Map ) appCredentials.get( "credentials" ) ).get( "client_id" ) ) )
                                      .addParam( "client_secret", String.valueOf(
@@ -167,7 +167,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        Entity thing = this.app().collection( "testCollections" ).collection( "_indexes" ).post( payload );
+        Entity thing = this.app().collection( "testCollections" ).collection( "_index" ).post( payload );
         refreshIndex();
 
 
@@ -206,10 +206,11 @@
         //to prove that the entity exists
 
         //next part is to delete the schema then reindex it and it should work.
-        this.app().collection( "testCollections" ).collection( "_indexes" ).delete();
+        this.app().collection( "testCollections" ).collection( "_index" ).delete();
         refreshIndex();
 
-        this.app().collection( "testCollections" ).collection( "_reindex" ).post(true,clientSetup.getSuperuserToken(),ApiResponse.class,null,null,false);
+        this.app().collection( "testCollections" ).collection( "_reindex" )
+            .post(true,clientSetup.getSuperuserToken(),ApiResponse.class,null,null,false);
         refreshIndex();
 
 
@@ -244,7 +245,7 @@
 
         //Post index to the collection metadata
         try {
-            this.app().collection( "testCollections" ).collection( "_indexes" ).post( payload );
+            this.app().collection( "testCollections" ).collection( "_index" ).post( payload );
             fail();
         }catch(BadRequestException bre){
             //this is expected.
@@ -258,7 +259,7 @@
         payload.put( "fields", indexingMap);
 
         try {
-            this.app().collection( "testCollections" ).collection( "_indexes" ).post( payload );
+            this.app().collection( "testCollections" ).collection( "_index" ).post( payload );
             fail();
         }catch(BadRequestException bre){
             //this is expected.
@@ -268,7 +269,7 @@
         payload.put( "fields", indexingArray);
 
         try {
-            this.app().collection( "testCollections" ).collection( "_indexes" ).post( payload );
+            this.app().collection( "testCollections" ).collection( "_index" ).post( payload );
         }catch(BadRequestException bre){
             fail( "This shouldn't fail" );
         }
@@ -291,7 +292,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        Entity thing = this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        Entity thing = this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
 
@@ -365,12 +366,13 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        Entity thing = this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        Entity thing = this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
 
         //Reindex and verify that the entity only has field one index.
-        this.app().collection( "testCollection" ).collection( "_reindex" ).post(true,clientSetup.getSuperuserToken(),ApiResponse.class,null,null,false);
+        this.app().collection( "testCollection" ).collection( "_reindex" )
+            .post(true,clientSetup.getSuperuserToken(),ApiResponse.class,null,null,false);
 
         for(int i = 0; i < 10; i++) {
             String query = "one ='value"+ i + "'";
@@ -415,7 +417,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        Entity thing = this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        Entity thing = this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         Collection collection = this.app().collection( "testCollection" ).collection( "_index" ).get();
@@ -430,7 +432,8 @@
 
 
         //Reindex and verify that the entity only has field one index.
-        this.app().collection( "testCollection" ).collection( "_reindex" ).post(true,clientSetup.getSuperuserToken(),ApiResponse.class,null,null,false);
+        this.app().collection( "testCollection" ).collection( "_reindex" )
+            .post(true,clientSetup.getSuperuserToken(),ApiResponse.class,null,null,false);
 
 
         indexingArray.add( "one" );
@@ -442,7 +445,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
 
         collection = this.app().collection( "testCollection" ).collection( "_index" ).get();
 
@@ -494,7 +497,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         //Create test collection with a test entity that is partially indexed.
@@ -536,7 +539,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         Map<String,Object> arrayFieldsForTesting = new HashMap<>();
@@ -586,7 +589,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         Map<String,Object> arrayFieldsForTesting = new HashMap<>();
@@ -629,7 +632,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         Map<String,Object> arrayFieldsForTestingSelectiveIndexing = new HashMap<>();
@@ -684,7 +687,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         Map<String,Object> arrayFieldsForTestingSelectiveIndexing = new HashMap<>();
@@ -735,7 +738,7 @@
         payload.put( "fields", indexingArray);
 
         //Post index to the collection metadata
-        this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        this.app().collection( "testCollection" ).collection( "_index" ).post( payload );
         refreshIndex();
 
         //Create test collection with a test entity that is partially indexed.
@@ -958,7 +961,7 @@
 
         String randomizer = RandomStringUtils.randomAlphanumeric(10);
         String collectionName = "col_" + randomizer;
-        app().collection( collectionName ).collection( "_indexes" ).post( payload );
+        app().collection( collectionName ).collection( "_index" ).post( payload );
         refreshIndex();
 
         // was the no-index wildcard saved and others ignored?
@@ -989,4 +992,108 @@
             .get( new QueryParameters().setQuery( "select * where color='magenta'" ) ).iterator();
         assertFalse( getByQuery.hasNext() );
     }
+
+
+    /**
+     * Test that indexed entities can be connected to un-indexed Entities and connections still work.
+     */
+    @Test
+    public void testIndexedEntityToUnindexedEntityConnections() {
+
+        // create entities in an un-indexed collection
+
+        ArrayList<String> indexingArray = new ArrayList<>(  );
+        indexingArray.add( "!" );
+        Entity payload = new Entity();
+        payload.put( "fields", indexingArray);
+
+        String randomizer = RandomStringUtils.randomAlphanumeric(10);
+        String unIndexedCollectionName = "col_" + randomizer;
+        app().collection( unIndexedCollectionName ).collection( "_index" ).post( payload );
+        refreshIndex();
+
+        String entityName1 = "unindexed1";
+        Entity unindexed1 = this.app().collection( unIndexedCollectionName )
+            .post( new Entity().withProp("name", entityName1).withProp( "color", "violet" ) );
+
+        String entityName2 = "unindexed2";
+        Entity unindexed2 = this.app().collection( unIndexedCollectionName )
+            .post( new Entity().withProp("name", entityName2).withProp( "color", "violet" ) );
+
+        // create an indexed entity
+
+        String indexedCollection = "col_" + randomizer;
+        String indexedEntityName = "indexedEntity";
+        Entity indexedEntity = this.app().collection( indexedCollection )
+            .post( new Entity().withProp("name", indexedEntityName).withProp( "color", "orange" ) );
+
+        // create connections from indexed entity to un-indexed entities
+
+        app().collection(indexedCollection).entity(indexedEntity).connection("likes").entity(unindexed1).post();
+        app().collection(indexedCollection).entity(indexedEntity).connection("likes").entity(unindexed2).post();
+
+        Collection connectionsByGraph = app().collection( indexedCollection )
+            .entity(indexedEntity).connection( "likes" ).get();
+        assertEquals( 2, connectionsByGraph.getNumOfEntities() );
+
+        Collection connectionsByQuery = app().collection( indexedCollection )
+            .entity(indexedEntity).connection( "likes" )
+            .get( new QueryParameters().setQuery( "select * where color='violet'" ));
+        assertEquals( 0, connectionsByQuery.getNumOfEntities() );
+
+    }
+
+
+    /**
+     * Test that index entities can be connected to un-indexed Entities and connections still work.
+     */
+    @Test
+    public void testUnindexedEntityToIndexedEntityConnections() {
+
+        // create two entities in an indexed collection
+
+        String randomizer = RandomStringUtils.randomAlphanumeric(10);
+        String indexedCollection = "col_" + randomizer;
+        String indexedEntityName = "indexedEntity";
+
+        Entity indexedEntity1 = this.app().collection( indexedCollection )
+            .post( new Entity().withProp("name", indexedEntityName + "_1").withProp( "color", "orange" ) );
+
+        Entity indexedEntity2 = this.app().collection( indexedCollection )
+            .post( new Entity().withProp("name", indexedEntityName + "_2").withProp( "color", "orange" ) );
+
+        // create an un-indexed entity
+
+        ArrayList<String> indexingArray = new ArrayList<>(  );
+        indexingArray.add( "!" );
+        Entity payload = new Entity();
+        payload.put( "fields", indexingArray);
+
+        String unIndexedCollectionName = "col_" + randomizer;
+        app().collection( unIndexedCollectionName ).collection( "_index" ).post( payload );
+        refreshIndex();
+
+        String entityName1 = "unindexed1";
+        Entity unindexed1 = this.app().collection( unIndexedCollectionName )
+            .post( new Entity().withProp("name", entityName1).withProp( "color", "violet" ) );
+
+        // create connections from un-indexed entity to indexed entities
+
+        app().collection(unIndexedCollectionName).entity(unindexed1).connection("likes").entity(indexedEntity1).post();
+        app().collection(unIndexedCollectionName).entity(unindexed1).connection("likes").entity(indexedEntity2).post();
+
+        // should be able to get connections via graph from un-indexed to index
+
+        Collection connectionsByGraph = app().collection( indexedCollection )
+            .entity(unindexed1).connection( "likes" ).get();
+        assertEquals( 2, connectionsByGraph.getNumOfEntities() );
+
+        // should not be able to get connections via query from unindexed to indexed
+
+        Collection connectionsByQuery = app().collection( indexedCollection )
+            .entity(unindexed1).connection( "likes" )
+            .get( new QueryParameters().setQuery( "select * where color='orange'" ));
+        assertEquals( 0, connectionsByQuery.getNumOfEntities() );
+    }
+
 }
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
index a1c07c5..cf07dff 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
@@ -27,6 +27,7 @@
 import org.apache.usergrid.rest.test.resource.AbstractRestIT;
 import org.apache.usergrid.rest.test.resource.model.ApiResponse;
 import org.apache.usergrid.rest.test.resource.model.Collection;
+import org.apache.usergrid.rest.test.resource.model.Entity;
 import org.apache.usergrid.rest.test.resource.model.QueryParameters;
 
 import static org.junit.Assert.assertEquals;
@@ -62,4 +63,51 @@
         assertEquals( 2, ( ( LinkedHashMap ) ( ( ArrayList)counters.get( "values" )).get( 0 )).get( "value" ));
 
     }
+
+    @Test
+    public void testDecrementingEntityCounters() throws Exception {
+
+        //Create test collection with test entity that is full text indexed.
+        int numberOfEntitiesToCreate = 10;
+
+        Entity[] entities = new Entity[numberOfEntitiesToCreate];
+        Entity testEntity = new Entity();
+        for(int i = 0; i < numberOfEntitiesToCreate; i++){
+            testEntity.put( "one","value"+i );
+            testEntity.put( "two","valuetwo"+i );
+            entities[i]= this.app().collection( "testCollection" ).post( testEntity );
+        }
+
+        //get default application
+       // ApiResponse defaultApp = org().app( clientSetup.getAppName() ).get();
+
+        QueryParameters queryParameters = new QueryParameters();
+        queryParameters.addParam( "resolution", "all" ).addParam( "counter", "application.collection.testcollections" );
+        Collection countersResponse = org().app( clientSetup.getAppName() ).collection( "counters" ).get( queryParameters ,true );
+
+        assertNotNull( countersResponse );
+        ArrayList counterValues = ( ArrayList ) countersResponse.getResponse().getProperties().get( "counters" );
+        LinkedHashMap counters = ( LinkedHashMap ) counterValues.get( 0 );
+        assertEquals( "application.collection.testcollections", counters.get( "name" ) );
+
+        //Since it was accessed twice above.
+        assertEquals( 10, ( ( LinkedHashMap ) ( ( ArrayList)counters.get( "values" )).get( 0 )).get( "value" ));
+
+        for(int i = 0; i < numberOfEntitiesToCreate; i++){
+            this.app().collection( "testCollection" ).entity( entities[i] ).delete( );
+        }
+        
+        queryParameters.addParam( "resolution", "all" ).addParam( "counter", "application.collection.testcollections" );
+        countersResponse = org().app( clientSetup.getAppName() ).collection( "counters" ).get( queryParameters ,true );
+
+        assertNotNull( countersResponse );
+        counterValues = ( ArrayList ) countersResponse.getResponse().getProperties().get( "counters" );
+        counters = ( LinkedHashMap ) counterValues.get( 0 );
+        assertEquals( "application.collection.testcollections", counters.get( "name" ) );
+
+        //Since it was accessed twice above.
+        assertEquals( 0, ( ( LinkedHashMap ) ( ( ArrayList)counters.get( "values" )).get( 0 )).get( "value" ));
+
+
+    }
 }
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index a586c26..73a56c8 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -17,7 +17,6 @@
 package org.apache.usergrid.management.cassandra;
 
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
@@ -88,6 +87,8 @@
 import static org.apache.commons.lang.StringUtils.isBlank;
 import static org.apache.usergrid.locking.LockHelper.getUniqueUpdateLock;
 import static org.apache.usergrid.management.AccountCreationProps.*;
+import static org.apache.usergrid.management.OrganizationConfigProps.ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.OrganizationConfigProps.WorkflowUrl;
 import static org.apache.usergrid.persistence.CredentialsInfo.getCredentialsSecret;
 import static org.apache.usergrid.persistence.Schema.*;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_UUID;
@@ -107,7 +108,6 @@
 import static org.apache.usergrid.utils.ListUtils.anyNull;
 import static org.apache.usergrid.utils.MapUtils.hashMap;
 import static org.apache.usergrid.utils.PasswordUtils.mongoPassword;
-import static org.apache.usergrid.management.OrganizationConfigProps.*;
 
 
 public class ManagementServiceImpl implements ManagementService {
@@ -173,6 +173,37 @@
     protected LocalShiroCache localShiroCache;
 
 
+    private LoadingCache<UUID, OrganizationConfig> orgConfigByAppCache = CacheBuilder.newBuilder().maximumSize( 1000 )
+        .expireAfterWrite( Long.valueOf( System.getProperty(ORG_CONFIG_CACHE_PROP, "30000") ) , TimeUnit.MILLISECONDS)
+        .build( new CacheLoader<UUID, OrganizationConfig>() {
+            public OrganizationConfig load( UUID applicationInfoId ) {
+
+                try {
+
+                    if (applicationInfoId != null && applicationInfoId != CpNamingUtils.MANAGEMENT_APPLICATION_ID) {
+
+                        final EntityManager em = emf.getEntityManager(smf.getManagementAppId());
+
+                        Results r = em.getSourceEntities(
+                            new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationInfoId),
+                            ORG_APP_RELATIONSHIP, Group.ENTITY_TYPE, Level.ALL_PROPERTIES);
+
+                        Group org = (Group) r.getEntity();
+                        if (org != null) {
+                            Map<Object, Object> entityProperties = em.getDictionaryAsMap(org, ORGANIZATION_CONFIG_DICTIONARY);
+                            return new OrganizationConfig(orgConfigProperties, org.getUuid(), org.getPath(), entityProperties, false);
+                        }
+                    }
+
+                    return new OrganizationConfig(orgConfigProperties);
+
+                } catch (Exception e) {
+                    return new OrganizationConfig(orgConfigProperties);
+                }
+            }}
+        );
+
+
 
     /** Must be constructed with a CassandraClientPool. */
     public ManagementServiceImpl(Injector injector) {
@@ -1678,6 +1709,8 @@
         em.addToCollection(new SimpleEntityRef(Group.ENTITY_TYPE, organization.getUuid()), "users",
             new SimpleEntityRef(User.ENTITY_TYPE, user.getUuid()));
 
+        invalidateManagementAppAuthCache();
+
         if ( email ) {
             sendAdminUserInvitedEmail( user, organization );
         }
@@ -1713,6 +1746,8 @@
 
         em.removeFromCollection(new SimpleEntityRef(Group.ENTITY_TYPE, organizationId), "users",
             new SimpleEntityRef(User.ENTITY_TYPE, userId));
+
+        invalidateManagementAppAuthCache();
     }
 
 
@@ -1773,15 +1808,13 @@
                     + ")</a> created a new application named " + applicationName, null );
         }
 
-        ScopedCache scopedCache = cacheFactory.getScopedCache(
-            new CacheScope( new SimpleId( CpNamingUtils.MANAGEMENT_APPLICATION_ID, "application" )));
-        scopedCache.invalidate();
-        localShiroCache.invalidateAll();
+        invalidateManagementAppAuthCache();
 
         return new ApplicationInfo( applicationId, appInfo.getName() );
     }
 
 
+
     @Override
     public void deleteApplication(UUID applicationId) throws Exception {
         emf.deleteApplication( applicationId );
@@ -1835,10 +1868,7 @@
                     + ")</a> restored an application named " + appInfo.getName(), null );
         }
 
-        ScopedCache scopedCache = cacheFactory.getScopedCache(
-            new CacheScope( new SimpleId( CpNamingUtils.MANAGEMENT_APPLICATION_ID, "application" )));
-        scopedCache.invalidate();
-        localShiroCache.invalidateAll();
+        invalidateManagementAppAuthCache();
 
         return new ApplicationInfo( applicationId, appInfo.getName() );
     }
@@ -2274,6 +2304,8 @@
     public void activateAdminUser( UUID userId ) throws Exception {
         EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
         em.setProperty( new SimpleEntityRef( User.ENTITY_TYPE, userId ), "activated", true );
+
+        invalidateManagementAppAuthCache();
     }
 
 
@@ -3424,39 +3456,10 @@
     }
 
 
-    private LoadingCache<UUID, OrganizationConfig> orgConfigByAppCache =
-        CacheBuilder.newBuilder().maximumSize( 1000 )
-            .expireAfterWrite( Long.valueOf( System.getProperty(ORG_CONFIG_CACHE_PROP, "30000") ) , TimeUnit.MILLISECONDS)
-            .build( new CacheLoader<UUID, OrganizationConfig>() {
-                public OrganizationConfig load( UUID applicationInfoId ) {
-
-                    try {
-
-                        if (applicationInfoId != null && applicationInfoId != CpNamingUtils.MANAGEMENT_APPLICATION_ID) {
-
-                            final EntityManager em = emf.getEntityManager(smf.getManagementAppId());
-
-                            Results r = em.getSourceEntities(
-                                new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationInfoId),
-                                ORG_APP_RELATIONSHIP, Group.ENTITY_TYPE, Level.ALL_PROPERTIES);
-
-                            Group org = (Group) r.getEntity();
-
-                            if (org != null) {
-                                Map<Object, Object> entityProperties = em.getDictionaryAsMap(org, ORGANIZATION_CONFIG_DICTIONARY);
-                                return new OrganizationConfig(orgConfigProperties, org.getUuid(), org.getPath(), entityProperties, false);
-                            }
-
-                        }
-
-                        return new OrganizationConfig(orgConfigProperties);
-
-                    }catch (Exception e){
-
-                        return new OrganizationConfig(orgConfigProperties);
-
-                    }
-                }}
-            );
-
+    private void invalidateManagementAppAuthCache() {
+        ScopedCache scopedCache = cacheFactory.getScopedCache(
+            new CacheScope( new SimpleId( CpNamingUtils.MANAGEMENT_APPLICATION_ID, "application" )));
+        scopedCache.invalidate();
+        localShiroCache.invalidateAll();
+    }
 }
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/ApplicationQueueManagerCache.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/ApplicationQueueManagerCache.java
new file mode 100644
index 0000000..555e495
--- /dev/null
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/ApplicationQueueManagerCache.java
@@ -0,0 +1,143 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.services.notifications;
+
+import com.google.common.cache.*;
+import com.google.inject.Singleton;
+import org.apache.usergrid.persistence.EntityManager;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
+import org.apache.usergrid.persistence.queue.QueueManager;
+import org.apache.usergrid.services.notifications.impl.ApplicationQueueManagerImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Properties;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
+
+
+@Singleton
+public class ApplicationQueueManagerCache{
+
+    private static final Logger logger = LoggerFactory.getLogger( ApplicationQueueManagerCache.class );
+
+
+    private final Cache<UUID, ApplicationQueueManager> cache;
+
+    private static final String CACHE_TTL_PROP = "usergrid.push.queuemanager.cache.time-to-live";
+    private static final String CACHE_MAX_SIZE_PROP = "usergrid.push.queuemanager.cache.size";
+
+    public ApplicationQueueManagerCache(){
+
+        // set a smaller ttl
+        long ttl = 10;
+        int configuredMaxSize;
+
+        try{
+            ttl = Integer.parseInt(System.getProperty(CACHE_TTL_PROP));
+        } catch (NumberFormatException e){
+            // already defaulted to 1 above
+        }
+
+        try{
+            configuredMaxSize = Integer.parseInt(System.getProperty(CACHE_MAX_SIZE_PROP));
+        } catch (NumberFormatException e){
+            configuredMaxSize = 200;
+        }
+
+        this.cache = CacheBuilder.newBuilder()
+            .maximumSize(Math.max(1000,configuredMaxSize))
+            .expireAfterWrite(ttl, TimeUnit.MINUTES)
+            .removalListener(new RemovalListener<UUID, ApplicationQueueManager>() {
+                @Override
+                public void onRemoval(
+                    RemovalNotification<UUID, ApplicationQueueManager> queueManagerNotifiication) {
+                    try {
+                        if ( queueManagerNotifiication.getValue() != null) {
+                            queueManagerNotifiication.getValue().stop();
+                        }
+                    } catch (Exception ie) {
+                        logger.error("Failed to shutdown push queue manager from cache", ie.getMessage());
+                    }
+                }
+            }).build();
+
+    }
+
+    public void put(UUID key, ApplicationQueueManager value){
+
+        cache.put(key, value);
+    }
+
+    public ConcurrentMap<UUID, ApplicationQueueManager> asMap(){
+
+        return cache.asMap();
+    }
+
+    public ApplicationQueueManager get(UUID key){
+        return cache.getIfPresent(key);
+    }
+
+    public void invalidate(UUID key){
+        cache.invalidate(key);
+    }
+
+    public void invalidateAll(){
+        cache.invalidateAll();
+    }
+
+
+    public ApplicationQueueManager getApplicationQueueManager( final EntityManager entityManager,
+                                                               final QueueManager queueManager,
+                                                               final JobScheduler jobScheduler,
+                                                               final MetricsFactory metricsService,
+                                                               final Properties properties ) {
+
+
+        ApplicationQueueManager manager = cache.getIfPresent(entityManager.getApplicationId());
+
+        if(manager != null){
+            if(logger.isTraceEnabled()){
+                logger.trace("Returning push queue manager from cache for application: {}", entityManager.getApplicationId());
+            }
+            return manager;
+
+        }else {
+            if(logger.isTraceEnabled()) {
+                logger.trace("Push queue manager not found in cache, loading for application: {}", entityManager.getApplicationId());
+            }
+            manager = new ApplicationQueueManagerImpl(
+                jobScheduler,
+                entityManager,
+                queueManager,
+                metricsService,
+                properties
+            );
+
+            cache.put(entityManager.getApplicationId(), manager);
+
+            return manager;
+
+
+        }
+
+
+    }
+
+
+}
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
index f4fdb65..907638e 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
@@ -77,6 +77,7 @@
     private ServiceManagerFactory smf;
     private EntityManagerFactory emf;
     private QueueManagerFactory queueManagerFactory;
+    private ApplicationQueueManagerCache applicationQueueManagerCache;
 
     public NotificationsService() {
         if (logger.isTraceEnabled()) {
@@ -99,7 +100,10 @@
         QueueScope queueScope = new QueueScopeImpl( name, QueueScope.RegionImplementation.LOCAL);
         queueManagerFactory = getApplicationContext().getBean( Injector.class ).getInstance(QueueManagerFactory.class);
         QueueManager queueManager = queueManagerFactory.getQueueManager(queueScope);
-        notificationQueueManager = new ApplicationQueueManagerImpl(jobScheduler,em,queueManager,metricsService,props);
+        applicationQueueManagerCache = getApplicationContext().getBean(Injector.class).getInstance(ApplicationQueueManagerCache.class);
+        notificationQueueManager = applicationQueueManagerCache
+            .getApplicationQueueManager(em,queueManager, jobScheduler, metricsService ,props);
+
         gracePeriod = JobScheduler.SCHEDULER_GRACE_PERIOD;
     }
 
@@ -136,7 +140,10 @@
             // perform some input validates on useGraph payload property vs. ql= path query
             final List<ServiceParameter> parameters = context.getRequest().getOriginalParameters();
             for (ServiceParameter parameter : parameters){
-                if( parameter instanceof ServiceParameter.QueryParameter && context.getProperties().get("useGraph").equals(true)){
+                if( parameter instanceof ServiceParameter.QueryParameter
+                    && context.getProperties().get("useGraph") != null
+                      && context.getProperties().get("useGraph").equals(true)){
+
                     throw new IllegalArgumentException("Query ql parameter cannot be used with useGraph:true property value");
                 }
             }
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
index 55d1491..478d5ed 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
@@ -57,6 +57,7 @@
     private ServiceManagerFactory smf;
 
     private EntityManagerFactory emf;
+    private ApplicationQueueManagerCache applicationQueueManagerCache;
 
 
     private Properties properties;
@@ -79,6 +80,8 @@
         this.emf = emf;
         this.metricsService = smf.getApplicationContext().getBean( Injector.class ).getInstance(MetricsFactory.class);
         this.properties = props;
+        this.applicationQueueManagerCache = smf.getApplicationContext().getBean(Injector.class).getInstance(ApplicationQueueManagerCache.class);
+
     }
 
     /**
@@ -86,8 +89,6 @@
      */
     public void start(){
         //TODO refactor this into a central component that will start/stop services
-//        boolean shouldRun = new Boolean(properties.getProperty("usergrid.notifications.listener.run", "false"));
-
 
             if (logger.isDebugEnabled()) {
                 logger.debug("QueueListener: starting.");
@@ -166,9 +167,6 @@
         // run until there are no more active jobs
         final AtomicLong runCount = new AtomicLong(0);
 
-        //cache to retrieve push manager, cached per notifier, so many notifications will get same push manager
-        LoadingCache<UUID, ApplicationQueueManager> queueManagerMap = getQueueManagerCache(queueManager);
-
         while ( true ) {
 
                 Timer.Context timerContext = timer.time();
@@ -207,7 +205,16 @@
                                 //send each set of app ids together
                                 for (Map.Entry<UUID, List<QueueMessage>> entry : messageMap.entrySet()) {
                                     UUID applicationId = entry.getKey();
-                                    ApplicationQueueManager manager = queueManagerMap.get(applicationId);
+
+                                    ApplicationQueueManager manager = applicationQueueManagerCache
+                                        .getApplicationQueueManager(
+                                            emf.getEntityManager(applicationId),
+                                            queueManager,
+                                            new JobScheduler(smf.getServiceManager(applicationId), emf.getEntityManager(applicationId)),
+                                            metricsService,
+                                            properties
+                                        );
+
                                     if (logger.isTraceEnabled()) {
                                         logger.trace("send batch for app {} of {} messages", entry.getKey(), entry.getValue().size());
                                     }
@@ -238,7 +245,7 @@
                                 }
 
                                 if(runCount.incrementAndGet() % consecutiveCallsToRemoveDevices == 0){
-                                    for(ApplicationQueueManager applicationQueueManager : queueManagerMap.asMap().values()){
+                                    for(ApplicationQueueManager applicationQueueManager : applicationQueueManagerCache.asMap().values()){
                                         try {
                                             applicationQueueManager.asyncCheckForInactiveDevices();
                                         }catch (Exception inactiveDeviceException){
@@ -280,43 +287,6 @@
         }
     }
 
-    private LoadingCache<UUID, ApplicationQueueManager> getQueueManagerCache(final QueueManager queueManager) {
-        return CacheBuilder
-                    .newBuilder()
-                    .expireAfterAccess(10, TimeUnit.MINUTES)
-                    .removalListener(new RemovalListener<UUID, ApplicationQueueManager>() {
-                        @Override
-                        public void onRemoval(
-                                RemovalNotification<UUID, ApplicationQueueManager> queueManagerNotifiication) {
-                            try {
-                                queueManagerNotifiication.getValue().stop();
-                            } catch (Exception ie) {
-                                logger.error("Failed to shutdown from cache", ie);
-                            }
-                        }
-                    }).build(new CacheLoader<UUID, ApplicationQueueManager>() {
-                         @Override
-                         public ApplicationQueueManager load(final UUID applicationId) {
-                             try {
-                                 EntityManager entityManager = emf.getEntityManager(applicationId);
-                                 ServiceManager serviceManager = smf.getServiceManager(applicationId);
-
-                                 ApplicationQueueManagerImpl manager = new ApplicationQueueManagerImpl(
-                                         new JobScheduler(serviceManager, entityManager),
-                                         entityManager,
-                                         queueManager,
-                                         metricsService,
-                                         properties
-                                 );
-                                 return manager;
-                             } catch (Exception e) {
-                                 logger.error("Could not instantiate queue manager", e);
-                                 return null;
-                             }
-                         }
-                     });
-    }
-
     public void stop(){
         if (logger.isDebugEnabled()) {
             logger.debug("stop processes");
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/TaskManager.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/TaskManager.java
index ce2b82c..870cae9 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/TaskManager.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/TaskManager.java
@@ -26,6 +26,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.time.Instant;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -37,12 +39,10 @@
     private AtomicLong successes = new AtomicLong();
     private AtomicLong failures = new AtomicLong();
     private EntityManager em;
-    private boolean hasFinished;
 
     public TaskManager(EntityManager em, Notification notification) {
         this.em = em;
         this.notification = notification;
-        hasFinished = false;
     }
 
     public long getSuccesses(){return successes.get();}
@@ -53,77 +53,78 @@
         completed(notifier,null,deviceUUID,null);
     }
     public void completed(Notifier notifier, Receipt receipt, UUID deviceUUID, String newProviderId) throws Exception {
-        if (logger.isTraceEnabled()) {
-            logger.trace("REMOVED {}", deviceUUID);
-        }
+
+        successes.incrementAndGet();
+
+
         try {
-            if (logger.isTraceEnabled()) {
-                logger.trace("notification {} removing device {} from remaining", notification.getUuid(), deviceUUID);
-            }
+            //.{year}.{month}.{day}.{HH24} possibly minute.
+            //random date and time for format
+
+
+            //incrementNotificationCounter( "completed" );
 
             EntityRef deviceRef = new SimpleEntityRef(Device.ENTITY_TYPE, deviceUUID);
+
             if (receipt != null) {
-                if (logger.isTraceEnabled()) {
-                    logger.trace("notification {} sent to device {}. saving receipt.", notification.getUuid(), deviceUUID);
-                }
+
                 receipt.setSent(System.currentTimeMillis());
                 this.saveReceipt(notification, deviceRef, receipt,false);
                 if (logger.isTraceEnabled()) {
-                    logger.trace("notification {} receipt saved for device {}", notification.getUuid(), deviceUUID);
+                    logger.trace("Notification {} receipt saved for device {}", notification.getUuid(), deviceUUID);
                 }
-                successes.incrementAndGet();
+
             }
 
             if (newProviderId != null) {
                 if (logger.isTraceEnabled()) {
-                    logger.trace("notification {} replacing device {} notifierId", notification.getUuid(), deviceUUID);
+                    logger.trace("Notification {} replacing notifier id for device {} ", notification.getUuid(), deviceUUID);
                 }
                 replaceProviderId(deviceRef, notifier, newProviderId);
             }
 
             if (logger.isTraceEnabled()) {
-                logger.trace("notification {} completed device {}", notification.getUuid(), deviceUUID);
+                logger.trace("Notification {} sending completed for device {}", notification.getUuid(), deviceUUID);
             }
 
-        } finally {
-            if (logger.isTraceEnabled()) {
-                logger.trace("COUNT is: {}", successes.get());
-            }
-//            if (hasFinished) { //process has finished but notifications are still coming in
-//                finishedBatch();
-//
-//            }
+        } catch(Exception e) {
+
+            logger.error("Unable to mark notification {} as completed due to: {}", notification.getUuid(), e);
+
         }
     }
 
     public void failed(Notifier notifier, Receipt receipt, UUID deviceUUID, Object code, String message) throws Exception {
 
+        failures.incrementAndGet();
+
         try {
+
+            //incrementNotificationCounter( "failed" );
+
             if (logger.isDebugEnabled()) {
-                logger.debug("notification {} for device {} got error {}", notification.getUuid(), deviceUUID, code);
+                logger.debug("Notification {} for device {} got error {}", notification.getUuid(), deviceUUID, code);
             }
 
-            failures.incrementAndGet();
-            if(receipt!=null) {
-                if ( receipt.getUuid() != null ) {
-                    successes.decrementAndGet();
-                }
+            if(receipt != null) {
                 receipt.setErrorCode( code );
                 receipt.setErrorMessage( message );
                 this.saveReceipt( notification, new SimpleEntityRef( Device.ENTITY_TYPE, deviceUUID ), receipt, true );
-                if ( logger.isDebugEnabled() ) {
-                    logger.debug( "notification {} receipt saved for device {}", notification.getUuid(), deviceUUID );
-                }
             }
-        } finally {
+
             completed(notifier, deviceUUID);
             finishedBatch();
+
+        } catch (Exception e){
+
+            logger.error("Unable to finish marking notification {} as failed due to error: ", notification.getUuid(), e);
+
         }
     }
 
-    /*
-    * called from TaskManager - creates a persistent receipt and updates the
-    * passed one w/ the UUID
+    /**
+    * Called from TaskManager - Creates a persistent receipt
+    *
     */
     private void saveReceipt(EntityRef notification, EntityRef device, Receipt receipt, boolean hasError) throws Exception {
 
@@ -142,11 +143,16 @@
             } else {
                 em.addToCollections(entities, Notification.RECEIPTS_COLLECTION, receipt);
             }
+
+            if ( logger.isDebugEnabled() ) {
+                logger.debug( "Notification {} receipt saved for device {}", notification.getUuid(), device.getUuid() );
+            }
+
         }
 
     }
 
-    protected void replaceProviderId(EntityRef device, Notifier notifier,
+    private void replaceProviderId(EntityRef device, Notifier notifier,
                                      String newProviderId) throws Exception {
         Object value = em.getProperty(device, notifier.getName()
                 + ApplicationQueueManager.NOTIFIER_ID_POSTFIX);
@@ -161,33 +167,38 @@
         }
     }
 
-    public void finishedBatch() throws Exception {
-        finishedBatch(true);
+    public void incrementNotificationCounter(String status){
+        em.incrementAggregateCounters( null,null,null,"counters.notifications."+notification.getUuid()+"."+status,1 );
+
+        LocalDateTime localDateTime = LocalDateTime.now();
+        StringBuilder currentDate = new StringBuilder(  );
+        currentDate.append( "counters.notifications.aggregate."+status+"." );
+        currentDate.append( localDateTime.getYear()+"." );
+        currentDate.append( localDateTime.getMonth()+"." );
+        currentDate.append( localDateTime.getDayOfMonth()+"." );
+        currentDate.append( localDateTime.getMinute() );
+        em.incrementAggregateCounters( null,null,null,currentDate.toString(),1 );
+
     }
 
-    public void finishedBatch(boolean refreshNotification) throws Exception {
 
-        long successes = this.successes.get(); //reset counters
-        long failures = this.failures.get(); //reset counters
+    public void finishedBatch() throws Exception {
 
-        for (int i = 0; i < successes; i++) {
-            this.successes.decrementAndGet();
-        }
-        for (int i = 0; i < failures; i++) {
-            this.failures.decrementAndGet();
-        }
+        long successes = this.successes.get();
+        long failures = this.failures.get();
 
-        this.hasFinished = true;
+        // reset the counters
+        this.successes.set(0);
+        this.failures.set(0);
 
-        // force refresh notification by fetching it
-        if (refreshNotification) {
-            notification = em.get(this.notification.getUuid(), Notification.class);
-        }
+        // get the latest notification info
+        notification = em.get(this.notification.getUuid(), Notification.class);
 
         notification.updateStatistics(successes, failures);
         notification.setModified(System.currentTimeMillis());
         notification.setFinished(notification.getModified());
 
         em.update(notification);
+
     }
 }
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
index 2f39ae4..eb5d794 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
@@ -19,15 +19,18 @@
 import com.codahale.metrics.Meter;
 import org.apache.usergrid.batch.JobExecution;
 import org.apache.usergrid.persistence.*;
+import org.apache.usergrid.persistence.core.executor.TaskExecutorFactory;
 import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
 import org.apache.usergrid.persistence.entities.*;
 import org.apache.usergrid.persistence.Query;
+import org.apache.usergrid.persistence.index.utils.UUIDUtils;
 import org.apache.usergrid.persistence.queue.QueueManager;
 import org.apache.usergrid.persistence.queue.QueueMessage;
 import org.apache.usergrid.services.notifications.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import rx.Observable;
+import rx.Scheduler;
 import rx.Subscriber;
 import rx.functions.Func1;
 import rx.schedulers.Schedulers;
@@ -42,8 +45,6 @@
 
     private static final Logger logger = LoggerFactory.getLogger(ApplicationQueueManagerImpl.class);
 
-    //this is for tests, will not mark initial post complete, set to false for tests
-
     private final EntityManager em;
     private final QueueManager qm;
     private final JobScheduler jobScheduler;
@@ -51,12 +52,21 @@
     private final String queueName;
     private final Meter queueMeter;
     private final Meter sendMeter;
+    private int concurrencyFactor;
 
+    private final static String PUSH_PROCESSING_MAXTHREADS_PROP = "usergrid.push.async.processing.threads";
+    private final static String PUSH_PROCESSING_QUEUESIZE_PROP = "usergrid.push.async.processing.queue.size";
     private final static String PUSH_PROCESSING_CONCURRENCY_PROP = "usergrid.push.async.processing.concurrency";
 
     HashMap<Object, ProviderAdapter> notifierHashMap; // only retrieve notifiers once
 
 
+
+    //private final Scheduler scheduler;
+
+
+
+
     public ApplicationQueueManagerImpl( JobScheduler jobScheduler, EntityManager entityManager,
                                         QueueManager queueManager, MetricsFactory metricsFactory,
                                         Properties properties) {
@@ -65,8 +75,35 @@
         this.jobScheduler = jobScheduler;
         this.metricsFactory = metricsFactory;
         this.queueName = getQueueNames(properties);
-        queueMeter = metricsFactory.getMeter(ApplicationQueueManagerImpl.class, "notification.queue");
-        sendMeter = metricsFactory.getMeter(NotificationsService.class, "queue.send");
+        this.queueMeter = metricsFactory.getMeter(ApplicationQueueManagerImpl.class, "notification.queue");
+        this.sendMeter = metricsFactory.getMeter(NotificationsService.class, "queue.send");
+        this.concurrencyFactor = Integer.valueOf(System.getProperty(PUSH_PROCESSING_CONCURRENCY_PROP, "50"));
+
+
+        /**
+        int maxAsyncThreads;
+        int workerQueueSize;
+
+        try {
+
+            maxAsyncThreads = Integer.valueOf(System.getProperty(PUSH_PROCESSING_MAXTHREADS_PROP, "200"));
+            workerQueueSize = Integer.valueOf(System.getProperty(PUSH_PROCESSING_QUEUESIZE_PROP, "2000"));
+
+        } catch (Exception e){
+
+            // if junk is passed into the property, just default the values
+            maxAsyncThreads = 200;
+            workerQueueSize = 2000;
+            this.concurrencyFactor = 50;
+
+        }
+
+
+        // create our own executor which has a bounded queue w/ caller runs policy for rejected tasks
+        this.scheduler = Schedulers.from(TaskExecutorFactory
+            .createTaskExecutor( "push-device-io", maxAsyncThreads, workerQueueSize,
+                TaskExecutorFactory.RejectionAction.CALLERRUNS ));
+         **/
 
     }
 
@@ -104,7 +141,9 @@
                 logger.trace("notification {} start query", notification.getUuid());
             }
 
-            logger.info("Notification {} started processing", notification.getUuid());
+            if(logger.isTraceEnabled()) {
+                logger.trace("Notification {} started processing", notification.getUuid());
+            }
 
 
 
@@ -206,6 +245,7 @@
                                 Query devicesQuery = new Query();
                                 devicesQuery.setCollection("devices");
                                 devicesQuery.setResultsLevel(Query.Level.CORE_PROPERTIES);
+                                devicesQuery.setLimit(50); // for now, assume a user has no more than 50 devices
 
                                 try {
 
@@ -234,7 +274,6 @@
                         return Observable.from(entities);
 
                         })
-                        .distinct( deviceRef -> deviceRef.getUuid())
                         .filter( device -> {
 
                             if(logger.isTraceEnabled()) {
@@ -271,37 +310,47 @@
 
                         })
                         .map(sendMessageFunction)
-                        .doOnNext( message -> {
-                            try {
+                        .subscribeOn(Schedulers.io());
 
-                                if(message.isPresent()){
+                }, concurrencyFactor)
+                .distinct( queueMessage -> {
 
-                                    if(logger.isTraceEnabled()) {
-                                        logger.trace("Queueing notification message for device: {}", message.get().getDeviceId());
-                                    }
-                                    qm.sendMessage( message.get() );
-                                    queueMeter.mark();
-                                }
+                    if(queueMessage.isPresent()) {
+                        return queueMessage.get().getDeviceId();
+                    }
 
-                            } catch (IOException e) {
+                    return UUIDUtils.newTimeUUID(); // this should be distinct, default handling for the Optional.empty() case
 
-                                if(message.isPresent()){
-                                    logger.error("Unable to queue notification for notification UUID {} and device UUID {} ",
-                                        message.get().getNotificationId(), message.get().getDeviceId());
-                                }
-                                else{
-                                    logger.error("Unable to queue notification as it's not present when trying to send to queue");
-                                }
+                } )
+                .doOnNext( message -> {
+                    try {
 
+                        if(message.isPresent()){
+
+                            if(logger.isTraceEnabled()) {
+                                logger.trace("Queueing notification message for device: {}", message.get().getDeviceId());
                             }
+                            qm.sendMessage( message.get() );
+                            queueMeter.mark();
+                        }
+
+                    } catch (IOException e) {
+
+                        if(message.isPresent()){
+                            logger.error("Unable to queue notification for notification UUID {} and device UUID {} ",
+                                message.get().getNotificationId(), message.get().getDeviceId());
+                        }
+                        else{
+                            logger.error("Unable to queue notification as it's not present when trying to send to queue");
+                        }
+
+                    }
 
 
-                        }).subscribeOn(Schedulers.io());
-
-                }, Integer.valueOf(System.getProperty(PUSH_PROCESSING_CONCURRENCY_PROP, "50")))
+                })
                 .doOnError(throwable -> {
 
-                    logger.error("Error while processing devices for notification : {}", notification.getUuid());
+                    logger.error("Error while processing devices for notification : {}, error: {}", notification.getUuid(), throwable.getMessage());
                     notification.setProcessingFinished(-1L);
                     notification.setDeviceProcessedCount(deviceCount.get());
                     logger.warn("Partial notification. Only {} devices processed for notification {}",
@@ -319,7 +368,9 @@
                         notification.setProcessingFinished(System.currentTimeMillis());
                         notification.setDeviceProcessedCount(deviceCount.get());
                         em.update(notification);
-                        logger.info("Notification {} finished processing {} device(s)", notification.getUuid(), deviceCount.get());
+                        if(logger.isTraceEnabled()) {
+                            logger.trace("Notification {} finished processing {} device(s)", notification.getUuid(), deviceCount.get());
+                        }
 
                     } catch (Exception e) {
                         logger.error("Unable to set processing finished timestamp for notification");
@@ -348,7 +399,7 @@
         // if no devices, go ahead and mark the batch finished
         if (deviceCount.get() <= 0 ) {
             TaskManager taskManager = new TaskManager(em, notification);
-            taskManager.finishedBatch(true);
+            taskManager.finishedBatch();
         }
 
 
@@ -540,32 +591,43 @@
 
 
     /**
-     * Validates that a notifier and adapter exists to send notifications to;
-     * {"winphone":"mymessage","apple":"mymessage"}
-     * TODO: document this method better
+     *  Validates that a notifier and adapter exists to send notifications to. For the example payload
+     *
+     *  { "payloads" : {"winphone":"mymessage","apple":"mymessage"} }
+     *
+     *  Notifiers with name "winphone" and "apple" must exist.
      */
-    private Map<String, Object> translatePayloads(Map<String, Object> payloads, Map<Object, ProviderAdapter>
-        notifierMap) throws Exception {
-        Map<String, Object> translatedPayloads = new HashMap<String, Object>(payloads.size());
+    private Map<String, Object> translatePayloads(Map<String, Object> payloads,
+                                                  Map<Object, ProviderAdapter> notifierMap) throws Exception {
+
+        final Map<String, Object> translatedPayloads = new HashMap<String, Object>(payloads.size());
+
         for (Map.Entry<String, Object> entry : payloads.entrySet()) {
+
             String payloadKey = entry.getKey().toLowerCase();
             Object payloadValue = entry.getValue();
+
             //look for adapter from payload map
             ProviderAdapter providerAdapter = notifierMap.get(payloadKey);
             if (providerAdapter != null) {
+
                 //translate payload to usable information
                 Object translatedPayload = payloadValue != null ? providerAdapter.translatePayload(payloadValue) : null;
                 if (translatedPayload != null) {
                     translatedPayloads.put(payloadKey, translatedPayload);
                 }
+
             }
         }
         return translatedPayloads;
     }
 
     public static String getQueueNames(Properties properties) {
-        String name = properties.getProperty(ApplicationQueueManagerImpl.DEFAULT_QUEUE_PROPERTY, ApplicationQueueManagerImpl.DEFAULT_QUEUE_NAME);
+
+        String name = properties.getProperty(ApplicationQueueManagerImpl.DEFAULT_QUEUE_PROPERTY,
+            ApplicationQueueManagerImpl.DEFAULT_QUEUE_NAME);
         return name;
+
     }
 
     private static final class IteratorObservable<T> implements rx.Observable.OnSubscribe<T> {
@@ -585,15 +647,15 @@
 
             try {
                 while (!subscriber.isUnsubscribed() && input.hasNext()) {
+
                     //send our input to the next
-                    //logger.debug("calling next on iterator: {}", input.getClass().getSimpleName());
                     subscriber.onNext((T) input.next());
+
                 }
 
                 //tell the subscriber we don't have any more data
-                //logger.debug("finished iterator: {}", input.getClass().getSimpleName());
-
                 subscriber.onCompleted();
+
             } catch (Throwable t) {
                 logger.error("failed on subscriber", t);
                 subscriber.onError(t);
@@ -617,10 +679,9 @@
                     }
                 }
             } catch (Exception e) {
-                logger.error("checkForInactiveDevices", e); // not
-                // essential so
-                // don't fail,
-                // but log
+                // not essential so don't fail, but log
+                logger.error("checkForInactiveDevices", e);
+
             }
         }
     }
@@ -630,14 +691,14 @@
 
         if (notification.getCanceled() == Boolean.TRUE) {
             if (logger.isDebugEnabled()) {
-                logger.debug("notification {} canceled. not sending.",
+                logger.debug("Notification {} canceled. Not sending.",
                     notification.getUuid());
             }
             return false;
         }
         if (notification.isExpired()) {
             if (logger.isDebugEnabled()) {
-                logger.debug("notification {} expired. not sending.",
+                logger.debug("Notification {} expired. Not sending.",
                     notification.getUuid());
             }
             return false;
@@ -654,7 +715,7 @@
             }
             return value != null ? value.toString() : null;
         } catch (Exception e) {
-            logger.error("Error getting provider ID, proceeding with rest of batch", e);
+            logger.error("Error getting notifier for device {}, proceeding with rest of batch", device, e);
             return null;
         }
     }
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifiers/NotifiersService.java b/stack/services/src/main/java/org/apache/usergrid/services/notifiers/NotifiersService.java
index 54a9dc4..cd5ca20 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifiers/NotifiersService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifiers/NotifiersService.java
@@ -16,7 +16,9 @@
  */
 package org.apache.usergrid.services.notifiers;
 
+import com.google.inject.Injector;
 import org.apache.usergrid.persistence.entities.Notifier;
+import org.apache.usergrid.services.notifications.ApplicationQueueManagerCache;
 import org.apache.usergrid.services.notifications.ProviderAdapterFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -54,6 +56,10 @@
                 providerAdapter.validateCreateNotifier(payload);
                 NotificationsService ns = (NotificationsService) sm.getService("notifications");
                 ns.testConnection(notifier);
+
+                // clear the app's push manager cache when notifiers are added
+                ns.getApplicationContext().getBean(Injector.class)
+                    .getInstance(ApplicationQueueManagerCache.class).invalidate(em.getApplicationId());
             } catch (Exception e) {
                 logger.info("notifier testConnection() failed", e);
                 em.delete(notifier);
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
index 77abb56..1a9f4f7 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
@@ -19,14 +19,19 @@
 import com.google.android.gcm.server.Constants;
 import com.google.android.gcm.server.InvalidRequestException;
 import net.jcip.annotations.NotThreadSafe;
+
+import org.apache.usergrid.ServiceApplication;
 import org.apache.usergrid.persistence.*;
 import org.apache.usergrid.persistence.entities.*;
+import org.apache.usergrid.persistence.index.query.CounterResolution;
+import org.apache.usergrid.services.ServiceResults;
 import org.apache.usergrid.services.notifications.*;
 import org.junit.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Field;
+import java.time.LocalDateTime;
 import java.util.*;
 
 import org.apache.usergrid.services.ServiceAction;
@@ -304,6 +309,78 @@
         checkReceipts(notification, 1);
     }
 
+    @Ignore("turn this on and run individually when you want to verify. there is an issue with the aggregate counter, because of all the other tests"
+        + "AND, there is an issue with the batcher where we have to turn it up/down to see the results in time. ")
+    @Test
+    public void singlePushNotificationWithCounters() throws Exception {
+
+        long ts = System.currentTimeMillis() - ( 24 * 60 * 60 * 1000 );
+        app.clear();
+        String payload = "Hello, World!";
+        Map<String, String> payloads = new HashMap<String, String>(1);
+        payloads.put(notifier.getUuid().toString(), payload);
+        app.put("payloads", payloads);
+        app.put("queued", System.currentTimeMillis());
+        app.put("debug", false);
+        app.put("expire", System.currentTimeMillis() + 300000); // add 5 minutes to current time
+
+        Entity e = app.testRequest(ServiceAction.POST, 1, "devices", device1.getUuid(), "notifications").getEntity();
+        app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
+
+        Notification notification = app.getEntityManager().get(e.getUuid(), Notification.class);
+        assertEquals(
+            notification.getPayloads().get(notifier.getUuid().toString()),
+            payload);
+
+        // perform push //
+        notification = notificationWaitForComplete(notification);
+        //        checkReceipts(notification, 1);
+
+
+        verifyNotificationCounter( notification,"completed",ts,1 );
+        verifyNotificationCounter( notification,"failed",ts, 0 );
+
+
+
+
+    }
+
+    public void verifyNotificationCounter(Notification notification,String status,Long timestamp, int expected){
+
+        Results countersResults = app.getEntityManager().getAggregateCounters( null,null,null,"counters.notifications."+notification.getUuid()+"."+status,
+            CounterResolution.ALL,timestamp,System.currentTimeMillis(),false ) ;
+
+        assertEquals( 1, countersResults.getCounters().size() );
+        if(expected > 0) {
+            assertEquals( expected, countersResults.getCounters().get( 0 ).getValues().get( 0 ).getValue() );
+        }else if (expected == 0){
+            assertEquals( 0,countersResults.getCounters().get( 0 ).getValues().size());
+        }
+
+        LocalDateTime localDateTime = LocalDateTime.now();
+        StringBuilder currentDate = new StringBuilder(  );
+        currentDate.append( "counters.notifications.aggregate."+status+"." );
+        currentDate.append( localDateTime.getYear()+"." );
+        currentDate.append( localDateTime.getMonth()+"." );
+        currentDate.append( localDateTime.getDayOfMonth()); //+"." );
+
+        countersResults = app.getEntityManager().getAggregateCounters( null,null,null,currentDate.toString(),
+            CounterResolution.ALL,timestamp,System.currentTimeMillis(),false ) ;
+
+        //checks to see that it exists
+        assertEquals( 1, countersResults.getCounters().size() );
+        if(expected > 0) {
+            assertEquals( expected, countersResults.getCounters().get( 0 ).getValues().get( 0 ).getValue() );
+
+        }
+        else if (expected == 0){
+            assertEquals( 0,countersResults.getCounters().get( 0 ).getValues().size());
+        }
+
+    }
+
+
+
     @Test
     public void singlePushNotificationMultipleDevices() throws Exception {
 
diff --git a/website/README.md b/website/README.md
index 2271ee0..735ad16 100644
--- a/website/README.md
+++ b/website/README.md
@@ -42,7 +42,7 @@
     
 ## 3. Publish your changes to the site    
 
-Run the nanoc compiler to generate the . It is configured via the ``nanoc.yaml`` to place website files into the ``content`` directory at the top 
+Run the nanoc compiler to generate the HTML for the website. It is configured via the ``nanoc.yaml`` to place website files into the ``content`` directory at the top 
 
     $ nanoc compile
 
diff --git a/website/layouts/footer.html b/website/layouts/footer.html
index 6101e04..ab21605 100644
--- a/website/layouts/footer.html
+++ b/website/layouts/footer.html
@@ -67,8 +67,7 @@
         </div> 
         <div class="row">
             <div id="copyright">
-                <img src="/img/egg-logo.png" /><br/><br/>
-                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                <p>Copyright © The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                 Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                 <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> .</p>
             </div>
