skeleton for client and server