docs: function(element, options) {
  
                      var cls = this.constructor,
                          pluginname = cls.pluginName || cls._fullName,
                          arr;
  
                      // Retrieve the raw element, then set the plugin name as a class there.
                      this.element = can.$(element);
  
                      if (pluginname && pluginname !== 'can_control') {
                          this.element.addClass(pluginname);
                      }
  
                      // Set up the 'controls' data on the element. If it does not exist, initialize
                      // it to an empty array.
                      arr = can.data(this.element, 'controls');
                      if (!arr) {
                          arr = [];
                          can.data(this.element, 'controls', arr);
                      }
                      arr.push(this);
  
                      // The `this.options` property is an Object that contains configuration data
                      // passed to a control when it is created (`new can.Control(element, options)`)
                      // The `options` argument passed when creating the control is merged with `can.Control.defaults` 
                      // in [can.Control.prototype.setup setup].
                      // If no `options` value is used during creation, the value in `defaults` is used instead
                      this.options = extend({}, cls.defaults, options);
  
                      this.on();
  
                      return [this.element, this.options];
                  }