I must stress to you how important it is to explore real-world usage of your interfaces. The shear number of times I have asked a developer "why did you add that" and they say "in case someone might need it," and I ask "what would that actually look like in code outside a unit test?" and they say "wellI haven't tried that."
Well, it's a big number.
And so I've been doing that today, and completely rebuilding my interface now…4 times?…as I work out what *useful* usage of this thing looks like.