support callable parameters with dynamic return type