public InfoNode Add(String key, Integer value, Node node){
		if(node instanceof LeafNode){
			if(((LeafNode) node).size < BPlusTreeIntToString60.maxDegree + 1){
				node.add(key, value);
				return null;
			}
			else{
				return SplitLeaf(key,value,node);
			}
		}
		if(node instanceof InternalNode){
			for(int i = 1; i <= node.getSize();i++ ){
				if(key.compareTo(((InternalNode)node).keys[i]) < 0){
					InfoNode tempInfo = Add(key, value, ((InternalNode)node).children[i-1]);
					if(tempInfo == null){
						return null;
					}
					else{
						return dealWithPromote(tempInfo,node);
					}
				}
			}
			InfoNode tempInfo = Add(key, value, ((InternalNode)node).children[node.getSize()]);
			if(tempInfo == null){
				return null;
			}
			else{
				return dealWithPromote(tempInfo,node);
			}
		}
		return null;
		
	}