Interfaces for observer pattern