Major, major revisions and additions.

Benjamin Mako Hill || Want to submit a patch?