update: ctro made nothrow.