Making cmdline app have more options and more robustly handle failure.