refactored balancer to director and provider