changing around how lexer works... again