Working, much better parser!