I've an interface which states:

```
public interface IMyType<T> where T: IMySubType {
    event EventHandler<IMyType<T>, EventArgs<T>> OnSomething;
    IEnumerable<T> AvailableThings{get;}
    void Start();
}

```

I've a `List<IMyType<IMySubType>>`, how can I add a `IMyType<SubTypeImplementation>` to this list? (`SubTypeImplementation` herits from the `IMySubType` interface.

I tried to put my `T`generic type as covariant, but it doesn't seems to work with an interface using this type as event(not sure to know why).

So, how can I store, iterate and call the start method on each element of the list?

Because currently my other alternative is to create a new interface without the genericity, and make a double implementation(because in most case I need to have this genericity.