add swap convenience method