Initial commit
Major rewrite to extend diff functionality
Added comment