=All minor fixes and some PEP8 compliancy
=All fixes including new tests and PEP8 compliance.