// FIXME:
        // 1) JUST FOR WARM UP: .map() incoming Dictionary<string, object> to MessageDTO. For that purpose use MessageDTO.price()
        //    NOTE: Incoming Dictionary<string, object> contains keys PRICE_KEY and CURRENCY_KEY
        //    NOTE: Use MessageMapper utility class for message validation and transformation
        // Visible for testing
        IObservable <Dictionary <string, object> > SelectOnlyPriceUpdateEvents(IObservable <Dictionary <string, object> > input)
        {
            // TODO: filter only Price messages
            // TODO: verify that price message are valid
            // HINT: Use MessageMapper methods to perform filtering and validation

            return(input.Where(m => MessageMapper.IsPriceMessageType(m) && MessageMapper.IsValidPriceMessage(m)));
        }