Adding abstract class for observer pattern