Enumerate() now forces full reevaluation to ensure SourceCount variables are updated when finished. This is bad, but works. Also moved to fields instead of properties.