design the server and client the same way