final handled all cases