Observer pattern abstract classes corrections