Rewrote diffing so it's better.