much better diff handling (not as clever, but more reliable)
2.5.0