improved Intersection class