haveDataInRange moved over (not tested)