add getopt