Some changes to perturb_components, should improve things slightly