public function with($options)
    {
        $clone = clone $this;
        foreach ($options as $name => $value) {
            $clone->setOption($name, $value);
        }

        return $clone;
    }