overload << and >>