added PorterStemmer implementation