use docopt to catch cli edge cases