more conventional interface, use NSParamenterAssert