public function getFirstChild()
	{
		if ( ! $this->hasChildren()) {
			return null;
		}
		$left = $this->getLeftValue() + 1;

		$searchCondition = $this->repository->createSearchCondition();
		$searchCondition->leftEqualsTo($left);

		$firstChild = $this->repository->search($searchCondition);
		if ( ! isset($firstChild[0])) {
			$dump = static::dump($this);
			throw new Exception\InvalidStructure("Could not find the first child of {$dump} but it must exist");
		}
		$firstChild = $firstChild[0];
		
		return $firstChild;
	}