Updated to use argparse