implement the server
The client