1. A method of providing a spellchecker function using a processor and for use with documents having rich text, the method comprising: initializing a dictionary containing words, wherein the dictionary is created from word lists then instantiated and serialized, a structure of the dictionary is a hashtable, and each dictionary word is assigned a set of signatures; creating at least one signature for each dictionary word; adding each dictionary word to at least one list keyed by each of the at least one signatures for each dictionary word; determining that a word is misspelled by checking the dictionary for the misspelled word resulting in a null value, the checking the dictionary comprising determining whether the misspelled word is present in the at least one list for a primary signature of the misspelled word, and when the misspelled word is not present in the at least one list, then the misspelled word is not spelled correctly resulting in the null value; when the misspelled word is not spelled correctly, creating a substitution list for the misspelled word, which includes: creating at least one signature associated with the misspelled word; finding all the dictionary words in the at least one list keyed by the at least one signature associated with the misspelled word; selecting best matches to the misspelled word; and providing from the selected best matches at least one replacement word for the misspelled word in the documents having rich text.