whole_func_string: function(fn) {
  			if (!_.isFunction(fn)) {
  				var elemName = fn.toLowerCase();
  				fn = function(item) {return item.name().toLowerCase() == elemName;};
  			}
  				
  			var result = [];
  			_.each(this.children, function(child) {
  				if (fn(child))
  					result.push(child);
  				
  				result = result.concat(child.findAll(fn));
  			});
  			
  			return _.compact(result);
  		}
func_code_string: function(fn) {
  			if (!_.isFunction(fn)) {
  				var elemName = fn.toLowerCase();
  				fn = function(item) {return item.name().toLowerCase() == elemName;};
  			}
  				
  			var result = [];
  			_.each(this.children, function(child) {
  				if (fn(child))
  					result.push(child);
  				
  				result = result.concat(child.findAll(fn));
  			});
  			
  			return _.compact(result);
  		}
func_documentation_string: Finds all child nodes that matches truth test for passed
  <code>fn</code> function
  @param {Function} fn
  @returns {Array}