Parser is adapted from YAHT