public function add($func)
    {
        ValidationException::assert(
            function () use ($func) {
                return !is_callable($func);
            },
            'function is not callable'
        );
        $this->func[] = $func;
        return $this;
    }