add range check