docs: function(options, streamChannels) {
      streamChannels.trackedKeywords = [];
      streamChannels.channels = {};
      streamChannels.channelsKeywordsLowerCased = {};
      streamChannels.channelsKeywordsLowerCasedRegExpSafe = {};
      streamChannels.channelsKeywordsLowerCasedRegExp = {};
  
      if (options.track instanceof Array || typeof options.track === 'string') {
        options.track = {
          "default": options.track
        };
      }
  
      for (var channel in options.track) {
        streamChannels.channels[channel] = keywordsToArray(options.track[channel], []);//process the options.track[channel] to make sure it will be an array of keywords
        streamChannels.channelsKeywordsLowerCased[channel] = streamChannels.channels[channel].map(function(item){
          return item.toLowerCase();
        });
        streamChannels.channelsKeywordsLowerCasedRegExpSafe[channel] = streamChannels.channelsKeywordsLowerCased[channel].map(function(item){
          return regExpEscape(item);//escape the lower cased keywords so they will be regexp proof
        });
        streamChannels.channelsKeywordsLowerCasedRegExp[channel] = streamChannels.channelsKeywordsLowerCased[channel].length > 0 ? new RegExp(streamChannels.channelsKeywordsLowerCasedRegExpSafe[channel].join('|'),'g') : null;//create the full text search regexp on lower cased keywords
        streamChannels.channels[channel].forEach(function(item){
          if(streamChannels.trackedKeywords.indexOf(item) === -1){
            streamChannels.trackedKeywords.push(item);
          }
        });
      }
  
      /*
       * Prepares keywords to an array of keywords like 'foo,bar' -> ['foo','bar'] also ['foo,bar','toto'] -> ['foo','bar','toto'] also 'foo,bar,toto' -> ['foo','bar','toto']
       * @param {Array|String} keywords
       * @returns {Array}
       */
      function keywordsToArray(keywords, result) {
        if (typeof keywords === 'string') {
          result = result.concat(keywords.split(','));
        }
        else if (keywords instanceof Array) {
          if (keywords.length > 0) {
            for (var i = 0; i < keywords.length; i++) {
              result = keywordsToArray(keywords[i], result);
            }
          }
        }
        return result;
      }
  
      return streamChannels;
    }