update with getopt