use exit(badarg) on parse error