Document requirements for replace, and use it to implement key methods