public function getCreator()
    {
        return $this->getCachedProperty(
            'creator',
            function () {
                try {
                    return $this->getValue('creator')
                        ? new Account($this->getValue('creator'))
                        : null;
                } catch (\InvalidArgumentException $e) {
                    throw new \UnexpectedValueException($e->getMessage(), $e->getCode(), $e);
                }
            }
        );
    }