finished exchange logic