docs: function(object, root)
  {
  	// support for tQuery(geometry, material)
  	if( arguments.length === 2 && 
  			(arguments[0] instanceof THREE.Geometry
  				|| arguments[0] instanceof THREE.BufferGeometry
  				|| arguments[0] instanceof tQuery.Geometry)
  			&& 
  			(arguments[1] instanceof THREE.Material || arguments[1] instanceof tQuery.Material)
  			){
  		var tGeometry	= arguments[0] instanceof tQuery.Geometry ? arguments[0].get(0) : arguments[0];
  		var tMaterial	= arguments[1] instanceof tQuery.Material ? arguments[1].get(0) : arguments[1];
  		var tMesh	= new THREE.Mesh(tGeometry, tMaterial);
  		return tQuery( tMesh );
  	}
  
  // TODO make tthat cleaner
  // - there is a list of functions registered by each plugins
  //   - handle() object instanceof THREE.Mesh
  //   - create() return new tQuery(object)
  // - this list is processed in order here
  
  	// if the object is an array, compare only the first element
  	// - up to the subconstructor to check if the whole array has proper type
  	var instance	= Array.isArray(object) ? object[0] : object;
  
  	if( instance instanceof THREE.Mesh  && tQuery.Mesh){
  		return new tQuery.Mesh(object);
  	}else if( instance instanceof THREE.DirectionalLight && tQuery.DirectionalLight){
  		return new tQuery.DirectionalLight(object);
  	}else if( instance instanceof THREE.AmbientLight && tQuery.AmbientLight){
  		return new tQuery.AmbientLight(object);
  	}else if( instance instanceof THREE.Light && tQuery.Light){
  		return new tQuery.Light(object);
  
  	}else if( instance instanceof THREE.Object3D  && tQuery.Object3D){
  		return new tQuery.Object3D(object);
  	}else if( instance instanceof THREE.Geometry && tQuery.Geometry){
  		return new tQuery.Geometry(object);
  	}else if( instance instanceof THREE.Material && tQuery.Material){
  		return new tQuery.Material(object);
  	}else if( typeof instance === "string" && tQuery.Object3D){
  		return new tQuery.Object3D(object, root);
  	}else{
  		console.assert(false, "unsupported type")
  	}
  	return undefined;
  }