public void addToTree(AdressBookEntry dataToAdd)
	{

		// newNode is used to create a node containing the relevant data
		newNode = new Node(dataToAdd);

		// This check checks that there exists a root node
		// If none exists, one is created.
		if(treeSize < 1)
		{
			rootNode = newNode;
			rootNode.setParent(null);
			currentNode = rootNode;
			treeSize++;
		}
		// In the event that the root has not been created
		else
		{
			// If the newNode's data is greater than that of the current Node 
			// the newNode will be added somewhere to the right of the current Node
			if(currentNode.getData().getFirstName().compareTo(newNode.getData().getFirstName()) > 0)
			{
				// If the currentNode has a Right node, the method is recalled with
				// the currentNode set to that of the Right hand side node of the current currentNode 
				if(currentNode.hasRight())
				{
					currentNode = currentNode.getRight();
					addToTree(dataToAdd);
				}
				//  If the currentNode does not have a right node, 
				//  the newNode is added to the right hand side immediately
				else
				{
					newNode.setParent(currentNode);
					currentNode.setRight(newNode);
					treeSize++;
				}
			}
			// If the newnode data is equivalent to that of the currentNode
			// the data is directly added to the left hand side of the currentNode
			// and the currentNode's left branch is repositioned to that of the newNode.
			else if(currentNode.getData().getFirstName().compareTo(newNode.getData().getFirstName()) == 0)
			{
				if(currentNode.hasLeft())
				{
					newNode.setParent(currentNode);
					newNode.setLeft(currentNode.getLeft());
					currentNode.setLeft(newNode);
				}
				else
				{
					newNode.setParent(currentNode);
					currentNode.setLeft(newNode);
				}
				treeSize++;
			}
			//  If it is neither equal or more than then the newNode will be added to the left
			else
			{
				if(currentNode.hasLeft())
				{
					currentNode = currentNode.getLeft();
					addToTree(dataToAdd);
				}
				else
				{
					newNode.setParent(currentNode);
					currentNode.setLeft(newNode);
					treeSize++;
				}
			}

		}
		// Once added, set the currentNode to the rootNode for future additions.
		currentNode = rootNode;
	}