added client-server stuff