use getopt