add getopt_long