Refactored PresenterFactory and associated Presenter.