client-side communications