docs: function(index) {
          var l = this.length;
          if (typeof index !== "undefined") {
              if (index >= l || index + l < 0) return undefined;
              if (index >= 0) return entities[this[index]];
              else return entities[this[index + l]];
          } else {
              var i = 0,
                  result = [];
              for (; i < l; i++) {
                  //skip if not exists
                  if (!entities[this[i]]) continue;
                  result.push(entities[this[i]]);
              }
              return result;
          }
      }