separate client and server