public IDisposable Modify(ICell <TModification> cellMod) { AddModification(cellMod.value); var disp = new DoubleDisposable(); disp.First = new AnonymousDisposable(() => RemoveModification(cellMod.value)); disp.Second = cellMod.BufferListenUpdates((newVal, oldVal) => ReplaceModification(oldVal, newVal)); return(disp); }