since the public caller already does this check, maybe it makes more sense not to do this in the private API?