public function single(\Closure $closure)
    {
        if ($this->asset === null) {
            $this->asset = function ($asset = null, $assetManager = null) use ($closure) {
                static $obj;
                if ($obj === null) {
                    $obj = $this->validate($closure($asset, $assetManager));
                }
                return $obj;
            };
        }
        return $this;
    }