Move things around a bit so abstract detection works.