docs: function Mesh(options){
  	var self = this;
  	EventEmitter.call(this);
  	options = options || {};
  
  	if(!options.wire){
  		throw new Error('a mesh needs a wire')
  	}
  	this.wire = options.wire;
  	this.router = options.router;
  	this.route = options.route;
  	this.mode = options.mode;
  
  	this.wiresend = _.bind(this.wire.send, this.wire);
  	this.wire.setup();
  
  	this.connected = {};
  	this.available = {};
  
  	var initial = this.router.search(this.route || '');
  
  	_.each(initial.workers, function(worker){
  		self.addworker(worker);
  	})
  
  	
  	this.router.on('added.' + this.route, function(route, worker){
  		self.addworker(worker);
  		self.emit('added', route, worker);
  	})
  
  	this.router.on('removed.' + this.route, function(route, worker){
  		self.removeworker(worker);
  		self.emit('removed', route, worker);
  	})
  }