advance server/client code. add Message & MessageDispatcher