added some comments
Made filter more underscorish
improve nomenclature - words now means strings, otherwise say
word-canonical pair