Should be able to reposition nodes by clicking on them and dragging, change cursor icon to the move icon during this process. The node's edge in the graph should update according. Cliping is okay, dont need to worry if the edge is behind another node. Should not be over the top. Also maybe use Bezier curve instead of rigth angles.