client-to-server communication