finding a root may fail
split into several files
more cleanups
implement EllipseNode
intersections
properly compute edges and their start and end for elliptic nodes