Taking the performance prototype another step further with an additional preparation step. The process now looks like this: (1) Cheerio places a  token around the selector value where it expects each piece of data, and outputs a string (2) The string is split on the token into an array and a list of indexes are build up marking the position of each selector (3) on each  run the cached array is cloned and populated from the data provided using lookup table