added strategy pattern and RandomBalancerStrategy