This effect can be achieved with the "cullUnchanged" option to the changeApplier - but in general it is best to use the "source" field of the ChangeEvent to avoid circularity. Don't spend much time looking into this now since this is only "draft framework material" and will be replaced, but do look at the existing implementation of these features and see if you can think of any improvements that would make them applicable here.