rebalance in a separate method