breaks on some files but otherwise seems to handle adds and mods