Use linked hash set for reproducibility when required
Split chain generation into three smaller methods
Fixed error when certain chains skip certain vertices, specifically after splitting a partition
Hide internal classes
Add conversion to external classes when returning data
Update the polygon viewer
Update chain intersections in parallel
Sort edges cleaner
Resolve some TODOs