initial draft using argparse