client and server separation