make basepresenter an abstract class