docs: function (obj) {
              var self = this;
              this.validate(obj).chain(function (valid) {
                  var index;
                  if (self.count <= self.__maxObjects && valid && (index = self.__inUseObjects.indexOf(obj)) > -1) {
                      self.__inUseObjects.splice(index, 1);
                      self.__freeObjects.enqueue(obj);
                      self.__checkQueries();
                  } else {
                      self.removeObject(obj);
                  }
              });
          }