Done most of the set operations