add spellcheck, improve the accuracy a lot