same for perturb position func