I don't think we need this method (nor merge) to be exposed to external user.

We can have them in default implementation. But for the outside world this interface needs to have only read-only methods.