properly handle punctuation