TODO: set operations for diff