Add tests
Change all instances of __unicode__ to __str__ for python 3
Change __unicode__() function call to __str__()
Add comments
Add tests
Change a bunch of little annoying things for python 3