make range lazy