Added union and intersection functions