optimize once_exchange flow