__str__ must return a str not print to stdout
pep8 compliance
more pep8 stuff