@fpelliccioni because the subscriber needs to access a reference to itself using shared_from_this() and there are other classes which need the subscriber to be a shared_ptr (because it is instantiated after the constructor or the reference is shared among multiple classes).