separate server side and client side protocol