Better lexing
Much better parser