use shift to avoid errors