using argparse for argument parsing