A more flexible data balancer