almost pep8 compliant