Replace _hasBeenEvaluated with _needsEvaluation; add some needed tests.