getopt modified