fix bug and add parser