code: public List<Model> getModels() {
          ArrayList<Model> list = new ArrayList<>(mItems.size());
          for (Item item : mItems.getItems()) {
              if (mReverseInterceptor != null) {
                  list.add(mReverseInterceptor.intercept(item));
              } else if (item instanceof IModelItem) {
                  list.add((Model) ((IModelItem) item).getModel());
              } else {
                  throw new RuntimeException("to get the list of models, the item either needs to implement `IModelItem` or you have to provide a `reverseInterceptor`");
              }
          }
          return list;
      }
docs: the ModelAdapter does not keep a list of input model's to get retrieve them a `reverseInterceptor` is required
  usually it is used to get the `Model` from a `IModelItem`
  
  @return a List of initial Model's