public void addToTree(LinkedList<String> path, String speciesName)
	{
		ListIterator<String> iterator = path.listIterator();
		PhylogeneticTree tmp = this;
		
		while(iterator.hasNext())
		{
			String nextEdgeLabel = iterator.next();
			//First check if this trait already exists
			if(tmp.getLeftEdgeLabel() == nextEdgeLabel)
			{
				tmp = tmp.getLeftTree();
				continue;
			}
			else if(tmp.getRightEdgeLabel() == nextEdgeLabel)
			{
				tmp = tmp.getRightTree();
				continue;
			}
			//If we get this far, it means we need to add the label, check if we can add on either side
			if(tmp.getLeftTree() == null) {
				String nodeLabel = (nextEdgeLabel == "%") ? speciesName : null;
				tmp.setLeftTree(new PhylogeneticTree(nodeLabel), nextEdgeLabel);
				tmp = tmp.getLeftTree();
			} 
			else if(tmp.getRightTree() == null) {
				String nodeLabel = (nextEdgeLabel == "%") ? speciesName : null;
				tmp.setRightTree(new PhylogeneticTree(nodeLabel), nextEdgeLabel);
				tmp = tmp.getRightTree();
			}
		}
	}