use more memory-efficient parser approach