Factor out some duplication. NFC.