user getopt