See the [wiki](https://github.com/frankduncan/clnl/wiki) for more information.
 
+# Using standalone executables
+
+Find the latest version, [0.1.0](https://github.com/frankduncan/clnl/releases/tag/v0.1.0) on the [releases page](https://github.com/frankduncan/clnl/releases):
+* [linux](https://github.com/frankduncan/clnl/releases/download/v0.1.0/clnl)
+* [windows](https://github.com/frankduncan/clnl/releases/download/v0.1.0/clnl.exe)
+* [mac](https://github.com/frankduncan/clnl/releases/download/v0.1.0/CLNL.dmg)
+
 # Running from source
 
 If you'd like to run it from source, you're going to need a few things:
 
-* A copy of the clnl source (either from the [releases page](https://github.com/frankduncan/clnl/releases) or via cloning)
+* A copy of the clnl source (either from the [releases page](https://github.com/frankduncan/clnl/releases), version [0.1.0](https://github.com/frankduncan/clnl/releases/download/v0.1.0/clnl_0.1.0.tar.gz) or via cloning)
 * An implementation of sbcl with threads enabled
 * The following common lisp libraries (included in [deps/common-lisp](deps/common-lisp) folder)
   * alexandria
 (asdf:load-system :clnl)
 (clnl:run)
 ```
-
-# Using standalone executables
-
-See the [releases page](https://github.com/frankduncan/clnl/releases) for the most recent release.
 
 
 SBCL_HOME="" tmp/sbcl/bin/sbcl --core tmp/sbcl/lib/sbcl/sbcl.core --no-sysinit --no-userinit \
   --eval "(require 'asdf)" \
-  --eval "(asdf:initialize-source-registry '(:source-registry (:tree \"${PWD}/tmp/deps\") (:directory \"${PWD}/src/main\") :IGNORE-INHERITED-CONFIGURATION))" \
+  --eval "(asdf:initialize-source-registry '(:source-registry (:tree \"${PWD}/tmp/deps\") (:tree \"${PWD}/src/main\") :IGNORE-INHERITED-CONFIGURATION))" \
   --eval "(asdf:load-system :clnl)" \
+  --eval "(asdf:load-system :clnl-extension-cli)" \
   --eval "(asdf:clear-output-translations)" \
   --eval '(sb-ext:save-lisp-and-die "osxsbcl" :executable t :toplevel (function clnl:run))' \
 
 
 
 sbcl --no-sysinit --no-userinit \
   --eval "(require 'asdf)" \
-  --eval "(asdf:initialize-source-registry '(:source-registry (:tree \"${escaped_cur_dir}\\\\tmp\\\\deps\") (:directory \"${escaped_cur_dir}\\\\src\\\\main\") :IGNORE-INHERITED-CONFIGURATION))" \
+  --eval "(asdf:initialize-source-registry '(:source-registry (:tree \"${escaped_cur_dir}\\\\tmp\\\\deps\") (:tree \"${escaped_cur_dir}\\\\src\\\\main\") :IGNORE-INHERITED-CONFIGURATION))" \
   --eval "(asdf:load-system :clnl)" \
+  --eval "(asdf:load-system :clnl-extension-cli)" \
   --eval "(asdf:clear-output-translations)" \
   --eval '(sb-ext:save-lisp-and-die "clnl.exe" :executable t :toplevel (function clnl:run))'
 
 
 generatedoc :clnl-lexer >> wiki/DocsOtherPackages.md
 generatedoc :clnl-parser >> wiki/DocsOtherPackages.md
 generatedoc :clnl-transpiler >> wiki/DocsOtherPackages.md
-generatedoc :clnl-random >> wiki/DocsOtherPackages.md
+generatedoc :clnl-code-parser >> wiki/DocsOtherPackages.md
 generatedoc :clnl-model >> wiki/DocsOtherPackages.md
+generatedoc :clnl-random >> wiki/DocsOtherPackages.md
 
 
 # The release process:
 #  * Change version number in clnl.asd
-#  * Run this script to create the source tarball
+#  * Change where the README.md points to releases
 #  * Run bin/generatedocs.sh to update wiki
-#  * Create release on github (that should create the tag)
-#  * Upload the tar.gz as an extra file
 #  * Create linux release using bin/buildlinuxexech.sh on a linux machine
 #  * Create osx release using bin/buildosxrelease.sh on a mac and upload
 #  * Create windows release using bin/buildwindowsexec.sh on a windows box and upload
+#  * Make a release commit and push up, most likely a rebase of all the commits to make the previous steps work correctly
+#  * Run this script to create the source tarball
+#  * Create release on github (that should create the tag), use v<MAJOR>.<MINOR>.<PATCH> as the versioning scheme
+#  * Upload the tar.gz as an extra file
 #  * Set the tag in wiki milestones, update Running wiki page to point to new release
 
 version=$(sbcl --noinform --disable-ldb --lose-on-corruption --end-runtime-options --eval '(format t "~A" (asdf:component-version (asdf:find-system :clnl)))' --eval "(quit)")
 
 (asdf:defsystem clnl
  :name "Experiment"
- :version "0.0.0"
+ :version "0.1.0"
  :maintainer "Frank Duncan (frank@kank.com)"
  :author "Frank Duncan (frank@kank.com)"
  :components ((:file "package")
 
 (defvar *glut-window-opened* nil)
 (defvar *dimensions* nil)
 
+(defvar *default-shapes* nil)
+
 ; For now, shapes can live in here
 ; header is
 ; * name <like default>
 (defun default-shapes ()
  (with-open-file (str "resources/defaultshapes") (parse-shapes str)))
 
+(eval-when (:load-toplevel)
+ (when (probe-file "resources/defaultshapes")
+  (setf *default-shapes* (default-shapes))))
+
 (defvar *colors*
  '((140 140 140) ; gray       (5)
    (215 48 39) ; red       (15)
       (gl:translate -150d0 -150d0 -0.0d0)
       (mapcar #'element->gl-list (getf shape :elements)))
      turtle-list))
-   (default-shapes))))
+   (or *default-shapes* (default-shapes)))))
 
 (defun set-patch-list ()
  (setf *patch-list* (gl:gen-lists 1))
 
-Subproject commit 769e5e8f99137d05ee9ea7eb5232d923f14b6286
+Subproject commit 5aa4443b92dcdd79e08ba82e64702dcdf239e2fe