further simplify parser