add unions and intersections