formatted with pep8 in mind