restructure diffing a bit
bisect search in differ