text replacement is a little more sophisticated (recognizes punctuation and numbers) with charCodeAt...more work to go