adding basic server implementation