diff --git a/README.md b/README.md
index 891922c..187800e 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,46 @@
-# Bluecrypt™ Keypairs
+# Bluecrypt™ [Keypairs](https://git.rootprojects.org/root/bluecrypt-keypairs.js) | A [Root](https://rootprojects.org) Project
 
 A port of [keypairs.js](https://git.coolaj86.com/coolaj86/keypairs.js) to the browser.
 
-* Keypairs
-  * Eckles (ECDSA)
-  * Rasha (RSA)
-  * X509
-  * ASN1
+# Features (port in-progress)
+
+  * [x] Keypair generation and encoding
+    * [x] RSA
+    * [x] ECDSA (P-256, P-384)
+    * [x] JWK-to-PEM
+    * [ ] JWK-to-SSH
+    * [ ] PEM-to-JWK
+    * [ ] SSH-to-JWK
+    * [x] ASN1, X509, PEM, DER
+  * [x] SHA256 JWK Thumbprints
+  * [x] Sign JWS
+  * [ ] Create JWTs
+  * [ ] JWK fetching. See [Keyfetch.js](https://npmjs.com/packages/keyfetch/)
+    * [ ] OIDC
+    * [ ] Auth0
+  * [ ] CLI (ee [keypairs-cli](https://npmjs.com/packages/keypairs-cli/))
+  * [ ] Node.js (ee [keypairs.js](https://npmjs.com/packages/keypairs.js))
+  * [ ] [CSR.js](https://git.rootprojects.org/root/bluecrypt-csr.js)
+  * [ ] [ACME.js](https://git.rootprojects.org/root/bluecrypt-acme.js) (Let's Encyrpt)
+
+# Online Demos
+
+* Bluecrypt Keypairs.js Demo 
+
+# QuickStart
+
+`bluecrypt-keypairs.js`
+```html
+
+```
+
+`bluecrypt-keypairs.min.js`
+```html
+
+```
+
+You can see `index.html` and `app.js` in the repo for full example usage.
+
+# Documentation
+
+See [keypairs.js](https://git.coolaj86.com/coolaj86/keypairs.js) for documentation.
diff --git a/app.js b/app.js
index 390a218..edb3d93 100644
--- a/app.js
+++ b/app.js
@@ -17,11 +17,6 @@
     return Array.prototype.slice.call(document.querySelectorAll(sel));
   }
 
-  function checkTos(tos) {
-    console.log("TODO checkbox for agree to terms");
-    return tos;
-  }
-
   function run() {
     console.log('hello');
 
@@ -113,8 +108,6 @@
         $$('button').map(function ($el) { $el.disabled = false; });
         $('.js-toc-jwk').hidden = false;
 
-        $('.js-create-account').hidden = false;
-        $('.js-create-csr').hidden = false;
       });
     });
 
diff --git a/bundle.sh b/bundle.sh
new file mode 100755
index 0000000..0bc43f1
--- /dev/null
+++ b/bundle.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# Development Version
+cat > bluecrypt-keypairs.js << EOF
+// Copyright 2015-2019 AJ ONeal. All rights reserved
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+;
+EOF
+cat ./lib/encoding.js \
+  ./lib/asn1-packer.js \
+  ./lib/x509.js \
+  ./lib/ecdsa.js \
+  ./lib/rsa.js \
+  ./lib/keypairs.js \
+  >> bluecrypt-keypairs.js
+
+# Gzipped
+cat > bluecrypt-keypairs.min.js << EOF
+// Copyright 2015-2019 AJ ONeal. All rights reserved
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+;
+EOF
+uglifyjs bluecrypt-keypairs.js >> bluecrypt-keypairs.min.js
+gzip -f bluecrypt-keypairs.min.js
+
+# Minified Gzipped
+cat > bluecrypt-keypairs.min.js << EOF
+// Copyright 2015-2019 AJ ONeal. All rights reserved
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+;
+EOF
+uglifyjs bluecrypt-keypairs.js >> bluecrypt-keypairs.min.js
+
+rsync -av ./ root@beta.therootcompany.com:~/beta.therootcompany.com/keypairs/
+rsync -av ./ root@beta.rootprojects.org:~/beta.rootprojects.org/keypairs/
+rsync -av ./ ubuntu@rootprojects.org:/srv/www/rootprojects.org/keypairs/
diff --git a/index.html b/index.html
index 1d51fd3..a9cf566 100644
--- a/index.html
+++ b/index.html
@@ -15,12 +15,20 @@
         white-space: -o-pre-wrap;   /* Opera 7 */
         word-wrap: break-word;      /* IE */
       }
-  
-
-
-  BlueCrypt for the Browser
-  BlueCrypt is universal crypto for the browser. It's lightweight, fast, and based on native webcrypto.
-    This means it's easy-to-use crypto in kilobytes, not megabytes.
+    
+  
+  
+    @bluecrypt/keypairs: Universal keygen & signing for browsers
+    Keypairs.js is easy-to-use browser crypto in kilobytes, not megabytes.
+
+    It's a modern alternative to larger, legacy libraries like PKI.js and rsasign,
+    with more universal support for keygen, signing, and verification (including PKI, X509, JOSE, JWS, and JWT)
+    at a fraction of the cost.
+
+    This is intended to be explored with your JavaScript console open.
+    <script src="https://rootprojects.org/keypairs/bluecrypt-keypairs.js"></script>
+    <script src="https://rootprojects.org/keypairs/bluecrypt-keypairs.min.js"></script>
+    Documentation
 
   Keypair Generation