reimplement the command line parser with docopt