code: function Nipple (collection, options) {
      this.identifier = options.identifier;
      this.position = options.position;
      this.frontPosition = options.frontPosition;
      this.collection = collection;
  
      // Defaults
      this.defaults = {
          size: 100,
          threshold: 0.1,
          color: 'white',
          fadeTime: 250,
          dataOnly: false,
          restJoystick: true,
          restOpacity: 0.5,
          mode: 'dynamic',
          zone: document.body,
          lockX: false,
          lockY: false
      };
  
      this.config(options);
  
      // Overwrites
      if (this.options.mode === 'dynamic') {
          this.options.restOpacity = 0;
      }
  
      this.id = Nipple.id;
      Nipple.id += 1;
      this.buildEl()
          .stylize();
  
      // Nipple's API.
      this.instance = {
          el: this.ui.el,
          on: this.on.bind(this),
          off: this.off.bind(this),
          show: this.show.bind(this),
          hide: this.hide.bind(this),
          add: this.addToDom.bind(this),
          remove: this.removeFromDom.bind(this),
          destroy: this.destroy.bind(this),
          resetDirection: this.resetDirection.bind(this),
          computeDirection: this.computeDirection.bind(this),
          trigger: this.trigger.bind(this),
          position: this.position,
          frontPosition: this.frontPosition,
          ui: this.ui,
          identifier: this.identifier,
          id: this.id,
          options: this.options
      };
  
      return this.instance;
  }
docs: ///////////////////// /   THE NIPPLE    /// /////////////////////