adds swap function