argument type checks