docs: private <Delegated> MvpPresenter<? super Delegated> getMvpPresenter(Delegated target, PresenterField<Delegated> presenterField, String delegateTag) {
  		Class<? extends MvpPresenter<?>> presenterClass = presenterField.getPresenterClass();
  		PresenterStore presenterStore = MvpFacade.getInstance().getPresenterStore();
  
  		PresenterType type = presenterField.getPresenterType();
  		String tag;
  		if (type == PresenterType.LOCAL) {
  			tag = delegateTag + "$" + presenterField.getTag(target);
  		} else {
  			tag = presenterField.getTag(target);
  		}
  
  		//noinspection unchecked
  		MvpPresenter<? super Delegated> presenter = presenterStore.get(tag);
  		if (presenter != null) {
  			return presenter;
  		}
  
  		//noinspection unchecked
  		presenter = (MvpPresenter<? super Delegated>) presenterField.providePresenter(target);
  
  		if (presenter == null) {
  			return null;
  		}
  
  		presenter.setPresenterType(type);
  		presenter.setTag(tag);
  		presenter.setPresenterClass(presenterClass);
  		presenterStore.add(tag, presenter);
  
  		return presenter;
  	}