Use delegate to deal with all events.
Multi client support !!!!!