supporting generic types in response and models