Redesign with argparse