proto server implementation