def func(self, values):
        """
        The actual ensembling logic that combines multiple *values*. The method call is forwareded
        tothe ensemble method-specific variant which is determined using *method*.
        """
        if self.method == METHOD_MEAN:
            return self.func_mean(values)
        elif self.method == METHOD_MAX:
            return self.func_max(values)
        elif self.method == METHOD_MIN:
            return self.func_min(values)
        elif self.method == METHOD_CUSTOM:
            return self.func_custom(values)
        else:
            raise UnknownEnsembleMethodException(self.method)