Diff should not be self modifying

Doesn't make sense on second thought
update readme with new methods
add table of contents