this code is not pep8 compliant and there is no test