use MooX::Cmd
clean up the API provided by MooX::Cmd using Getopt::Long
factor out some of long sub
pluggable output formats