tests, refactor
refactoring, more tests
more refactor, tests