uses docopt for option parsing.