try to use difflib