recompute in bulk