@Override
	public void add( CellRec cell )
	{
		int first = cell.getColFirst();
		int last = cell.getColLast();

		validate( cell.getColNumber(), first, last );

		log.debug( "Adding Cell: {} R{}C{}-{} {} - {}", cell.getCellAddressWithSheet(), cell.getRowNumber(), first, last, cell.getClass().getName(), cell.toString() );

		//
		// While we do double loop on this, I want the data structure usage safety over any potential performance issues right now.
		// If add() is being invoked for a Cell that already exists, that implies an incorrect usage and it should be fixed.
		//
		for( int col = first; col <= last; col++ )
		{
			SortedSet<CellRec> colCells = cells.get( col );
			if( (colCells != null) && colCells.contains( cell ) )
			{
				String msg = String.format( "Attempt to add cell '%s' that is already in Column %d.", cell, col );
				log.error( msg );
				log.error( "THIS IS AN OPENXLS CODE ERROR - WE SHOULD NOT BE DOING THIS" );
				// FIXME: Code upstream invokes this multiple times and needs to be fixed before re-enabling this exception (which I intend to do)
//				throw new IllegalArgumentException( msg );
			}
		}

		for( int col = first; col <= last; col++ )
		{
			SortedSet<CellRec> colCells = cells.get( col );
			if( colCells == null )
			{
				colCells = new TreeSet<>( new RowComparator() );
				cells.put( col, colCells );
			}

			boolean added = colCells.add( cell );
			if( !added )
			{
				log.error( "Unable to add cell to Collection - it seems to already exist! Cell: {}, Col: {}", cell, col );
			}
		}

		log.trace( "Added Cell '{}' to Cols: {}-{}", cell, first, last );
	}