function addPath($Path, array $Descriptions = null)
	{
	    if ($Path[0] !== "/")
	        throw new \Exception ("The path supplied is not valid.");

	    $Path = substr ( $Path, 1 );
	    $Parts = explode ( "/", $Path );
	    $Parent = 1;
	    $index = 0;
	    $CurrentPath = "";
	    $NodesCreated = 0;

	    foreach ($Parts as $p)
	    {
	        if (isset ($Descriptions[$index]))
	            $Description = $Descriptions[$index];
	        else
	            $Description = "";
	        $CurrentPath .= "/{$p}";
	        $t = $this->pathId($CurrentPath);
	        if (! $t)
	        {
	            $IID = $this->add($p, $Description, $Parent);
	            $Parent = $IID;
	            $NodesCreated++;
	        }
	        else
	        {
	            $Parent = $t;
	        }

	        $index += 1;
	    }

	    return (int)$NodesCreated;
	}