You're going to some trouble below two make the other properties read-only using getters, but these two are writeable.  How about saving this._root = root.replace('.', '_') and then have getters to return the two id's based on this._root?