simplified server implementation