Separate client and server implementation.