refactored lexer again to more concise form... -sai