implemented the server component