code: function extend( base , extension , overwrite ) {
  	var key ;
  
  	if ( ! extension || typeof extension !== 'object' || Array.isArray( extension ) ) {
  		throw new TypeError( '[doormen] .extend*(): Argument #0 should be a plain object' ) ;
  	}
  
  	for ( key in extension ) {
  		if ( ( ( key in base ) && ! overwrite ) || typeof extension[ key ] !== 'function' ) { continue ; }
  		base[ key ] = extension[ key ] ;
  	}
  }
docs: /* Extend