class CallBuilder {

    public static <T extends Builder> T newInstance(Function function, Class<T> callType) throws NoSuchMethodException,
            InvocationTargetException, IllegalAccessException, IllegalArgumentException, InstantiationException {
        Constructor<T> ctor = callType.getConstructor(Function.class);
        return ctor.newInstance(function);
    }

}