implementation for the RangeValueProvider
don't force IRangeValueProvider necessarily
make RangeValueControl an abstract class to force constructor