generate vec surrogates using closures