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`.
Thats fair… I'll have to take a look to see where the extends are used, and if they are used separately at all. Might make sense to just roll them together.