introduced a BasePresenter class, new shared_example for presentable