complete client-server