server/client separation