refinement: communicate via events.