Refactor: use callback to observe room messages