docs: function(things, level) {
  						// stop if there is nothing to process or if the maximum processing depth has been reached
  						if(((! things) && (level > 1)) || ((amaStats.max_depth_to_inspect) && (level > amaStats.max_depth_to_inspect))){
  							return;
  						}
  
  						// update statistics	
  						if(amaStats.max_processed_level < level) {
  							amaStats.max_processed_level = level;	
  						}
  
  						if(! amaStats.level_stats['level_' + level]) {
  							amaStats.level_stats['level_' + level] = {
  																		processed : 0,
  																		warnings : 0,
  																		missing	: 0
  																	};
  						}
  						
  						// process records 
  						if(things.hasOwnProperty('kind') && (things.kind === 'Listing')) {
  								if((things.hasOwnProperty('data')) && (things.data.hasOwnProperty('children'))) {
  									_.forEach(things.data.children, function (thing) {
  											// for a definition of thing refer to the Reddit API doc
  											if(thing.hasOwnProperty('data')) {
  												if((thing.data.hasOwnProperty('selftext')) || (thing.data.hasOwnProperty('body'))) {
  													// the record includes text that can be analyzed; submit comment for Tone Analyzer processing
  													q.push( thing.data );	
  													amaStats.processed_record_count++;
  													amaStats.level_stats['level_' + level].processed++;
  												}
  												else {
  													// the record does not include text that can be analyzed; skip
  
  													if(thing.kind === 'more'){
  														// type "more" indicates that there are things (e.g. comments) in this subtree that were not loaded but could be 
  														// retrieved using https://www.reddit.com/dev/api#GET_api_morechildren
  												    	// TODO additional processing is required
  												    	// calculate total (across all levels)
  												    	if(thing.data.count) {
  															amaStats.missing_record_count = amaStats.missing_record_count + thing.data.count; 
  												    		// calculate total for current level
  												    		amaStats.level_stats['level_' + level].missing = amaStats.level_stats['level_' + level].missing + thing.data.count;														 
  												    	}
  													}
  													else {
  														  // unknown record type 	
  														  amaStats.parser_warnings++;
  														  amaStats.level_stats['level_' + level].warnings++;
  														  logger.warn('Potential parser error detected for record type ' + thing.kind + ' at level ' + level + ': ' + util.inspect(thing.data,3));
  													}	
  												}
  
  												// process sub-tree things (which are typically comments/replies)
  												// before processung other things at the current level
  												processSubtree(thing.data.replies, level + 1);
  											}	
  									});
  								} // ! data.children
  								else {
  									// potential parser logic error
  									amaStats.parser_warnings++;
  									amaStats.level_stats['level_' + level].warnings++;
  									logger.warn('Potential parser error detected at level ' + level + ': ' + util.inspect(things,3));
  								}
  						}
  						else {
  								// potential parser logic error
  								amaStats.parser_warnings++;
  								amaStats.level_stats['level_' + level].warnings++;
  								logger.warn('Potential parser error detected at level ' + level + ': ' + util.inspect(things,3));
  						}
  				}