Refactorization

Making this script a less hacky and more like it was written by a proper programmer.

- Refactored to make it callback driven rather than printing stuff to console in the body of the class.
- Provided a few new methods to allow you to integrate meaningfully with the class.
- Better docs in the readme.