tweaking diff interface
adding specs for the diff class
removing warnings, some rearrangement to restore modes before mv