correct implementation of difffference; add symmetricDifference