update parser to cover more cases