add Swappairs and its recursive version