docs: function Traverser(fspec,options) {
  
  	if(!(this instanceof Traverser))
  	    return new Traverser(fspec,options);
  	
  	this.struct = {};
  
  	if(typeof fspec === 'object'){
  
  	    options = fspec;
  
  	    fspec = undefined;
  	}
  	
  	if(options){
  
  	    if(options.match) this.match = (options.match instanceof RegExp) ? options.match : new RegExp(options.match);
  
  	    if(options.ignore) this.ignore = (options.match instanceof RegExp) ? options.ignore : new RegExp(options.ignore);
  
  	    this.follow = !!options.follow;
  	    
  	}
  
  	this.size = 0;
  
  	this.items = 0;
  
  	this.base = "";
  
  	if(fspec){
  
  	    if(Array.isArray(fspec)){
  		    this.traverse(fspec);		
  	    } else {
  		
  		this.base = path.resolve(fspec);
  
  		this.traverse(fspec);
  		
  	    }
  	    
  	}
      }