implement symmetric_difference