General note: there are still a lot of PEP8 errors here.  Please run pep8 + fix.