public function getChild()
    {
        $children = $this->getChildren();

        if (!$children) {
            throw new OutOfBoundsException(sprintf(
                'Expected exactly one child, got "%s"',
                count($children)
            ));
        }

        if (count($children) > 1) {
            throw new OutOfBoundsException(sprintf(
                'More than one child node but getChild will only ever return one. "%d" returned.',
                count($children)
            ));
        }

        return current($children);
    }