fix optional argument parsing