Better argument parsing