updated parser structure