public void addSerialLink(String inLinkName,String inFirstNodeName,String inFirstNodeInterface,String inSecondNodeName,String inSecondNodeInterface)
		throws InvalidLinkNameException, InvalidLinkConnectionException, InvalidNetworkInterfaceNameException, InvalidNodeNameException {

		if (!linkTable.containsKey(inLinkName)) {
					
			//test if node's exist within hashtable
			if(nodeTable.containsKey(inFirstNodeName) && nodeTable.containsKey(inSecondNodeName)){
				Node tempNode1 = (Node) nodeTable.get(inFirstNodeName);
				Node tempNode2 = (Node) nodeTable.get(inSecondNodeName);
				
				//Return NetworkInterface from Node objects		
			  	NetworkInterface interface1 = tempNode1.getNetworkInterface(inFirstNodeInterface);
				NetworkInterface interface2 = tempNode2.getNetworkInterface(inSecondNodeInterface);
			
				//Create link and add it to hashtable
				linkTable.put(inLinkName,new SerialLink(inLinkName, interface1, interface2));				
			}else{
				throw new InvalidNodeNameException("Invalid node name");
			}					
		} else
			throw new InvalidLinkNameException("Link already exists with same name.");
	}