I don't think we need more than one way to apply conditions to the validate function. One that takes an initializer list or even better a variadic function should be enough.