added functor tree