public void Bootstrap(IServiceCollection serviceCollection)
        {
            serviceCollection.AddSingleton <IPacketFactory, PacketFactory>();
            serviceCollection.AddSingleton <ISentenceListener, NMEASentenceListener>();
            serviceCollection.AddSingleton <ISentenceProcessor, NMEASentenceProcessor>();

            var vesselCollection = new VesselCollection();

            serviceCollection.AddSingleton <VesselCollection>(vesselCollection);
            serviceCollection.AddTransient <IReadOnlyVesselCollection, VesselCollection>((serviceProvider) => vesselCollection);
        }
        public NMEASentenceProcessor(
            IPacketFactory packetFactory,
            ISentenceListener sentenceListener,
            ParserConfiguration parserConfiguration,
            VesselCollection vesselCollection)
        {
            _packetFactory = packetFactory;
            _listener      = sentenceListener;
            _configuration = parserConfiguration;
            _vessels       = vesselCollection;

            _listener.OnSentenceReceived += _listener_OnSentenceReceived;
        }