support swap rebalance