juggle order of arguments in `add/3` and `replace/3`