instead of std::shared_ptr... you could use multicast_communication::market_data_receiver::service_ptr