separated concerns and completed find_intersections