add some boiler plate arg checks