slightly better argument parsing