need to include getopt.h