refactored to use lexemes