added SetDiff & SetPatch. minor refactoring