some intersect function things