refactor FreeServe so that readRequests and writeResponses take Consumers and Producers.