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`.