add customizable range functions