docs: function(callback, scope, args){
          var mArgs = [null];
          if (!scope) scope = this;
          if (args) {
              if (!_isArr(args)) args = [args];
              mArgs = mArgs.concat(args);
          }
          while (this.hasMoreHierarchies()){
              mArgs[0] = this._hierarchyDefs[this._hierarchyOrder[this._hierarchyIndex]];
              if (callback.apply(scope, mArgs)===false) return false;
              this.nextHierarchy();
          }
          this._hierarchyIndex = 0;
          return true;
      }