currentIsUpper implies currentIsLetter is true, right? so && currentIsLetter test could be eliminated I think.