Very simple Observer pattern implementation