class HomePresenter {

    public void setup() {
        profilePreferences.load(loadedProfilePreferences -> {
            modelProvider.initialize(()->{
                final HomeModel model = modelProvider.get(loadedProfilePreferences);

                view.setWelcome(model.getWelcome());
                view.setDescription(model.getDescription());
                view.setBackgroundImageUrl(model.getBackgroundImageUrl());
                model.getShortcuts().forEach(shortcut -> {
                    final ShortcutPresenter shortcutPresenter = shortcutPresenters.get();
                    shortcutPresenter.setup(shortcut);
                    view.addShortcut(shortcutPresenter);
                });
            });
        }, RuntimeException::new);
    }

    @Inject public  HomePresenter(final View view,
                         final TranslationService translationService,
                         final HomeModelProvider modelProvider,
                         final ManagedInstance<ShortcutPresenter> shortcutPresenters,
                         final ProfilePreferences profilePreferences);

}