Observer Pattern with a simple 'User Chat' example