public boolean updateRoutingTable(){
	//go through every node. for every node, update best distance, to every other node. 
	//two loops. first goes through all nodes, other looks at neighbours and updates distance
	//get distance to neighbour, plus edge in between them
		
	//for every other node in the graph
	boolean updated = false;
	for(Node n : network.getNodes()){
		if(n.getName().equals(name)){ continue;}	
		int currentDistance = this.routingTable.get(n);
		
		//examine the nodes's neighbours
		for(Node neighbour:network.getNeighbours(n)){
			
			//this is the node recieving an update from its nieghbour
			//need to make a new class to hold both the integer cost, and also refernece to neighbour
			int neighbourDistance = this.routingTable.get(neighbour);
			Link neighbourLink = network.getLink(n,neighbour);
			
			
			//inactive link
			if(neighbourLink==null){
				continue;
			}
		
	
			int neighbourLinkCost =  neighbourLink.getCost();

			
			if((neighbourDistance+neighbourLinkCost)<currentDistance){
				updated = true;
				//this is the node propogating the new information to its neighbours
				routingTable.put(n,(neighbourDistance+neighbourLinkCost));
				//the best path to n is through neighbour
				vectorTable.put(n, neighbour);
			}
		}
	}
	if(updated){
		System.out.println(name+"'s routing table has been updated.");
	}
	return updated;
	}