a complete CLI using argparse