add `replace` option & tests