Many of the comments above come from this implementation. I think Example shouldn't implement IEnumerable<ExampleValue>. It should have a, say Values, property for its values instead.