Large refactor with new extends and new names

@ajself @EricPKerr @josephwegner 

**WARNING: THIS IS A BREAKING CHANGE**

Variables have been renamed and new extends have been added. If you do not update to this release you must reference SHA `bd6777f1c1e8f159f6b71eaa97cb03f8930025c1`.
I could see adding `text` to this list, maybe.

Also, why did you add a bunch of whitespace here?