assign && swap