use 'nopt' now to parse arguments