perturb2 should be virtual