refactor, tests, cli
refactor, tests, cli