Seperated into server and client