docs: function (options) {
                      var ret = {};
                      options = options || {};
  
                      for (var key in this.$) {
                          if (this.$.hasOwnProperty(key)) {
                              if (options.exclude) {
                                  if (options.exclude instanceof Array) {
                                      if (_.include(options.exclude, key)) {
                                          ret[key] = this.$[key];
                                          continue;
                                      }
                                  }
                              }
                              if (this.$bindings.hasOwnProperty(key) && this.factory.prototype.defaults.hasOwnProperty(key)) {
                                  ret[key] = this.factory.prototype.defaults[key];
                              } else {
                                  ret[key] = this._cloneAttribute(this.$[key], key);
                              }
  
                          }
                      }
                      var b = new this.factory(ret, true);
                      b._$source = this;
                      b.$injected = this.$injected;
                      return b;
                  }