public function construct($subject, &$data = array())
    {
        if (null === $this->constructed) {
            $this->constructed = unserialize(
                sprintf(
                    'O:%d:"%s":0:{}',
                    strlen($subject),
                    $subject
                )
            );
        }
        return clone $this->constructed;
    }