range checking