not totally sure how the pieces fit together, but it might be better to just have subscription explicitly in the constructor and set by the base class so that you can override the subscription functionality without having to use inheritance