change "inherit from response" to "functionally wrap response"
change a type check