Allow for horizontal placement of nodes and their sub-branches. The layout algorithm works great along the vertical axis, not horizontal.
If I move a node to the left (or right) of the subtree above it, place it parallel to that subtree and farther to the left (or right). If there is no node above, use the node below. Or better, if I slide it parallel either above or below, follow that motion and place it there such that no lines connecting to a common parent are obscured.