Intersect refactored