todo: - [ ] get flake8 passing - [ ] add flake8 check to circleci
todo: