don't rollup the vecs every time, do it once and cache