private Node putElementIntoRow(Node header, Node elementToPut, int columnId) {
		Node element = header;
		Node previousColumn = header;
		Node nextColumn = header.getLeft();
		while (nextColumn.getColumn() >= columnId) {
			if (nextColumn.getColumn() == columnId) {
				element = nextColumn;
				if (elementToPut != null) {
					element.setValue(elementToPut.getValue());
				}
				break;
			} else {
				previousColumn = nextColumn;
				nextColumn = nextColumn.getLeft();
			}
		}
		if (element == header) {
			if (elementToPut != null) {
				element = elementToPut;
				element.setLeft(nextColumn);
				previousColumn.setLeft(element);
			} else {
				element = new Node(header.getRow(), columnId, null, null, nextColumn);
				element.setTop(element);
				previousColumn.setLeft(element);
			}
		}
		return element;
	}