rework for whole range