better ingredient parsing