moved dragging logic out of node viewmodel