docs: function() {
          var data, silent, recursive;
          if (typeof arguments[0] === "string") {
              data = this._set_create_object(arguments[0], arguments[1]);
              silent = !!arguments[2];
              recursive = arguments[3] || arguments[0].indexOf(".") > -1;
          } else {
              data = arguments[0];
              silent = !!arguments[1];
              recursive = !!arguments[2];
          }
  
          if (!silent) {
              this.trigger("Change", data);
          }
  
          if (recursive) {
              this._recursive_extend(data, this);
          } else {
              this.extend.call(this, data);
          }
          return this;
      }