only test for a clean tmp dir if that dir exists
test_help and test_version
use @annotations to map commands to functions in main

Also update the override interface to use subcommands properly.