support multiple response type