split operation providers again to tree and parent
added operators for operation providers and a matching ctor