moved reciprocal_exchange