private void generateItems(double density) {
		double candleDensity = 0.05; // generates the candles to light the path
		for (int column = 0; column < getColumns(); column++) {
			for (int row = 0; row < getRows(); row++) {
				if (isPath(column, row) && Math.random() < candleDensity) {
					Candle c = new Candle();
					int hPadding = (SQUARE_SIZE - c.getWidth()) / 2;
					int vPadding = (SQUARE_SIZE - c.getHeight()) / 2;
					c.setX(column * SQUARE_SIZE + hPadding);
					c.setY(row * SQUARE_SIZE + vPadding);
					lights.add(c);
					items.add(c);
				}
			}
		}

		for (int x = SQUARE_SIZE; x < (columns - 1) * SQUARE_SIZE; x += SQUARE_SIZE) {
			for (int y = SQUARE_SIZE; y < (rows - 1) * SQUARE_SIZE; y += SQUARE_SIZE) {
				if (!hasItem(x + SQUARE_SIZE / 2, y + SQUARE_SIZE / 2) && Math.random() < density) {
					// for centering
					Item item = Item.randomItem(x, y);
					int hPadding = (SQUARE_SIZE - item.getWidth()) / 2;
					int vPadding = (SQUARE_SIZE - item.getHeight()) / 2;
					item.setX(x + hPadding);
					item.setY(y + vPadding);
					items.add(item);
				}
			}
		}
	}