slightly more cautious with swapping