Optimized the intersection algorithm
* ~260s-> ~85s for Jersey 50m
* cleanup might be warranted, just wanted to get it working here
* also should have a test that actually tests this (not just a runner)