Now Router<A> is really polimorphic and can construct any subclass of A.