edited evaluate