public void insertNonFull(int key, int value, BTreeNode startNode) {
		int keyIndex = startNode.getNoOfKeys()-1;
		if (startNode.isLeaf()) {
			while( keyIndex >= 0 && key < startNode.getKeyAt(keyIndex)) {
				startNode.setKeyAt(keyIndex+1, startNode.getKeyAt(keyIndex));
				startNode.setValueAt(keyIndex+1, startNode.getValueAt(keyIndex));
				keyIndex--;
			}
			startNode.setKeyAt(keyIndex+1, key);
			startNode.setValueAt(keyIndex+1, value);
			startNode.setNoOfKeys(startNode.getNoOfKeys() + 1);
		}
		else {
			while( keyIndex >= 0 && key < startNode.getKeyAt(keyIndex)) {
				keyIndex--;
			}
			keyIndex++;
			if (startNode.getChildAt(keyIndex).getNoOfKeys() == 2*order - 1 ) {
				splitChildOfNode(startNode, keyIndex);
				if(key > startNode.getKeyAt(keyIndex))
					keyIndex++;
			}
			insertNonFull(key, value, startNode.getChildAt(keyIndex));
		}
	}