add PropertyReplacer class