class ListInteractor implements ListContract.Interactor<T> {

    @Override
    public void runRequest(@NotNull Callable<List<T>> callable, @NotNull AppExecutors.Request request, @NotNull ListContract.Presenter<T> presenter) {

        Runnable runnable = () -> {
            try {
                List<T> tList = callable.call();
                appExecutors.mainThread().execute(() -> presenter.onItemsFetched(tList));
            } catch (Exception e) {
                Timber.e(e);
                appExecutors.mainThread().execute(() -> presenter.onFetchRequestError(e));
            }
        };
        appExecutors.execute(runnable, request);
    }

    public  ListInteractor();
    @VisibleForTesting  ListInteractor(AppExecutors appExecutors);

}