client -> server communication uses json