here is main reason memory efectivity, as it should be often called and we want to share one pointer. ( in fact there is only one root, that lives in `ScriptingAgent` and all pointers point to it ).
I also don't like much mixing it, but even original code here is very incosistent, so sometimes it is hard decision what use.

To unclear ownership, I document ownership in base class and this is just overwritten method. Maybe I should at least add `\see` here.