public function getTarget($classname = null)
    {
        if (null === $classname || true === $this->isTargetInstanceOf($classname)) {
            return $this->target;
        }

        throw new \InvalidArgumentException(sprintf(
            'Invalid target: expected `%s`, `%s` provided.',
            $classname,
            'object' === gettype($this->target) ? get_class($this->target) : $this->target
        ));
    }