ensure valid range