evalue function updated, more reasonable