Only mark a pure computed as changed if its value actually changed. This minimizes evaluation of downstream computeds. Add comments to new code sections. Remove dependency between isSleeping and _needsEvaluation.