argument parsing improvements