move vdom to separate module