reorganizng lexer and initial tests working