Refatored for integrate Presenter