Reworks argument parsing, to pass defaults to non-specied optional params