code: function Datamap( options ) {
  
      if ( typeof d3 === 'undefined' || typeof topojson === 'undefined' ) {
        throw new Error('Include d3.js (v3.0.3 or greater) and topojson on this page before creating a new map');
     }
  
      //set options for global use
      this.options = defaults(options, defaultOptions);
      this.options.geographyConfig = defaults(options.geographyConfig, defaultOptions.geographyConfig);
      this.options.bubblesConfig = defaults(options.bubblesConfig, defaultOptions.bubblesConfig);
      this.options.arcConfig = defaults(options.arcConfig, defaultOptions.arcConfig);
  
      //add the SVG container
      if ( d3.select( this.options.element ).select('svg').length > 0 ) {
        addContainer.call(this, this.options.element, this.options.height, this.options.width );
      }
  
      /* Add core plugins to this instance */
      this.addPlugin('bubbles', handleBubbles);
      this.addPlugin('legend', addLegend);
      this.addPlugin('arc', handleArcs);
      this.addPlugin('labels', handleLabels);
  
      //append style block with basic hoverover styles
      if ( ! this.options.disableDefaultStyles ) {
        addStyleBlock();
      }
  
      return this.draw();
    }
docs: ************************************
  Public Functions
  *************************************