avoid reevaluation