better command line app
update tests; still have some failing tests :(