Revert "Remove abstract stuff from EntityDiff"

reordering this and another commit, and will recommit

This reverts commit 9644a8b730b28fd41423fbed7055ccd339aac18c