use vals in Parser to avoid rebuilding the same parser objects over and over again