unify argument parsing