actually implemented IntersectIV()