While it looks plausible, why would you come up with a solution as awkward as this? You can only maintain it by rigorously following a consistent protocol of using Replace, but if you are going to maintain a rigorous protocol, why not make it a protocol of parameters?