separated client and server