new try, this time using diff_match_patch