Observer pattern without on and trigger implemented