add argparse support