Prepare to reimplement @StevenLawson's changes