Add some basic unit tests.
A little more documentation.
Fixed __str__ to actually return a string.