clean up test cases
use diff-tree -r to recurse into sub-trees
implement changed() methods