using difflib, so much better