http://techiworks.com/how-can-swap-two-variables-without-using-third-variable/