swap fonk with pointer