replace

started out as a simple cherry pick, but became way more.