handle more cases