add subtract and intersect variants