Migrate to a request/response model