move abstract methods to base view