public void ListenForData(SslStream sslStream)
        {
            readObservable = sslStream
                             .ToStreamObservable(1)
                             .SubscribeOn(NewThreadScheduler.Default);

            var encoding = Encoding.UTF8;

            readObservable
            .Select(a => encoding.GetString(a.Array, a.Offset, a.Count))
            .Scan(String.Empty, (a, b) => (a.EndsWith("\n") ? "" : a) + b)
            .Where(a => a.EndsWith("\n"))
            .Subscribe((str) =>
            {
                Options.Logging.Debug(str);
                var mappedObject = responseMapper.MapJsonResponse(str);
                Responses.OnNext(mappedObject);
            },
                       (e) => Responses.OnError(e),
                       () =>
            {
                Options.Logging.Debug("Read Subscription Done");
                Responses.OnCompleted();
            }, CancelToken);
        }