exchange odd

reworked to run faster