added tests and fixed ∪