cleaned up lexer implementation... -sai