Make argument parsing look nicer & slight optimisations