This is the actual parser code