- Intersect optimization by using while instead of for
- Wrong implementation of union function