Slew of Things

There's a couple of `things` I changed.

* Documented all the new APIs and classes.
* Corrected some more APIs
* Bug fixes
* Close #148