update getopt and usage