Listeners vector needs to contain shared_ptr.