protected function instantiateHydrator(Hydrator $hydrator = null)
    {
        if (is_null($this->hydrator) || ! is_null($hydrator)) {
            $this->hydrator = ! is_null($hydrator)
                ? $hydrator
                : new Hydrator($this->config);
        }

        return $this->hydrator;
    }