protected function initialize()
    {
        if ($this->initialized) {
            return;
        }

        if (! is_object($this->prototype)) {
            $this->prototype = new ArrayObject;
        }

        if (! $this->hydrator instanceof HydratorInterface) {
            $this->hydrator = new ArraySerializable;
        }

        $this->initialized = true;
    }