move vtree to separate module