swap, >> overload