These helpers can all be private (they're not called from tests).