switch to argparse