src/data_structures/CellData.java
private <T extends Cell> List<Cell> copy(List<T> list) {
		ArrayList<Cell> copy = new ArrayList<Cell>();
		for (Cell c : list) {
			Cell newCell = c.createCopy();
			copy.add(newCell);
		}
		return copy;
	}
/**
	 * Basic List copy function to limit actual access to items
	 * 
	 * @param list
	 *            List to be copied
	 * @return Copy of List filled with COPIES OF EACH ITEM
	 */
Basic List copy function to limit actual access to items

@param list
List to be copied
@return Copy of List filled with COPIES OF EACH ITEM
Basic List copy function to limit actual access to items @param list List to be copied @return Copy of List filled with COPIES OF EACH ITEM
private <T extends Cell> List<Cell> copy(List<T> list) {
		ArrayList<Cell> copy = new ArrayList<Cell>();
		for (Cell c : list) {
			Cell newCell = c.createCopy();
			copy.add(newCell);
		}
		return copy;
	}
private < T extends Cell > List < Cell > copy ( List < T > list ) { ArrayList < Cell > copy = new ArrayList < Cell > ( ) ; for ( Cell c : list ) { Cell newCell = c . createCopy ( ) ; copy . add ( newCell ) ; } return copy ; }
Basic List copy function to limit actual access to items
Basic List copy function to limit actual access to items