class Listener4SpeedAssistExtend implements Listener4Assist.AssistExtend,
        ListenerModelHandler.ModelCreator<Listener4SpeedAssistExtend.Listener4SpeedModel> {

    @Override public boolean dispatchFetchProgress(@NonNull DownloadTask task, int blockIndex,
                                                   long increaseBytes,
                                                   @NonNull Listener4Assist.Listener4Model model) {
        final Listener4SpeedModel speedModel = (Listener4SpeedModel) model;

        speedModel.blockSpeeds.get(blockIndex).downloading(increaseBytes);
        speedModel.taskSpeed.downloading(increaseBytes);

        if (callback != null) {
            callback.progressBlock(task, blockIndex, model.blockCurrentOffsetMap.get(blockIndex),
                    speedModel.getBlockSpeed(blockIndex));
            callback.progress(task, model.currentOffset, speedModel.taskSpeed);
        }

        return true;
    }

}