changed AbstractView to a non-abstract class