Refactor TradeOffer to be immutable.