Added BaseView abstract class - moved proper functionality to it