start implmenting the lexer