change interface to Replacer