public int getRowCount()  {
		if (numberOfRows != null) return numberOfRows;
		if (categories.isEmpty()) throw new IllegalStateException("there are no categories added from which I could count the number of rows/fields");
		int rowcount = categories.get(0).getFieldCount();
		for (Category category : categories) {
			if (category.getFieldCount() != rowcount) throw new IllegalStateException("all categories must have the the same number of rows/fields");
		}
		numberOfRows = rowcount;
		return rowcount;
	}