docs: function (parent) {
              var options = this.__opts || {};
              var ds, self = this;
              if (!isUndefined((ds = options.dataset)) && isFunction(ds)) {
                  ds = ds.apply(parent, [parent]);
              }
              if (!ds) {
                  var q = {};
                  this._setAssociationKeys(parent, q);
                  ds = this.model.dataset.naked().filter(q);
                  var recip = this.model._findAssociation(this);
                  recip && (recip = recip[1]);
                  ds.rowCb = function (item) {
                      var model = self._toModel(item, true);
                      recip && recip.__setValue(model, parent);
                      //call hook to finish other model associations
                      return model._hook("post", "load").chain(function () {
                          return model;
                      });
                  };
              } else if (!ds.rowCb && this.model) {
                  ds.rowCb = function (item) {
                      var model = self._toModel(item, true);
                      //call hook to finish other model associations
                      return model._hook("post", "load").chain(function () {
                          return model;
                      });
                  };
              }
  
              return this._setDatasetOptions(ds);
          }