make RateTracker an interface. move implementation to BasicRateTracker. Allow ClientBuilder to specify RateTracker.