limit should already be a set? Is this just defensive?