switch from getopt to argparse