added set operations