code: function addQuery(arr) {
  		var self = this;
  		var query_args = [];
  		for (var i=1; i<arguments.length; i++) // except first, which is array
  			query_args.push(arguments[i]);
  		arr.push(function(callback){ // add callback for async.series() member tasks
  			if (typeof query_args[query_args.length-1] !== 'function')
  				query_args.push(function(){callback();}); // add callback
  			else{
  				var f = query_args[query_args.length-1];
  				query_args[query_args.length-1] = function(){ // add callback() call to the end of the function
  					f.apply(f, arguments);
  					callback();
  				}
  			}
  			self.query.apply(self, query_args);
  		});
  	}
docs: accumulate array of functions for async.series() it applies both to individual connection and to pool