Totally revamped module

* Using classes now
* backwards compatible with python 2.x
* Structure!