code: function(options) {
  			var out = this.formatEmpty(),
  				data = [],
  				rels;
  
  			this.init();
  			options = (options)? options : {};
  			this.mergeOptions(options);
  			this.getDOMContext( options );
  
  			// if we do not have any context create error
  			if(!this.rootNode || !this.document){
  				this.errors.push(this.noContentErr);
  			}else{
  
  				// only parse h-* microformats if we need to
  				// this is added to speed up parsing
  				if(this.hasMicroformats(this.rootNode, options)){
  					this.prepareDOM( options );
  
  					if(this.options.filters.length > 0){
  						// parse flat list of items
  						var newRootNode = this.findFilterNodes(this.rootNode, this.options.filters);
  						data = this.walkRoot(newRootNode);
  					}else{
  						// parse whole document from root
  						data = this.walkRoot(this.rootNode);
  					}
  
  					out.items = data;
  					// don't clear-up DOM if it was cloned
  					if(modules.domUtils.canCloneDocument(this.document) === false){
  						this.clearUpDom(this.rootNode);
  					}
  				}
  
  				// find any rels
  				if(this.findRels){
  					rels = this.findRels(this.rootNode);
  					out.rels = rels.rels;
  					out['rel-urls'] = rels['rel-urls'];
  				}
  
  			}
  
  			if(this.errors.length > 0){
  				return this.formatError();
  			}
  			return out;
  		}
docs: internal parse function
  
  @param  {Object} options
  @return {Object}