improve base presenter api