Modified the behavior of Diff a bit and added more tests and comments to
the tests.