public ItemBuilder() {
		fileParser = new FileParser(KEYS);
		List<File> files = FileUtils.getFiles("items/");
		for (File file : files) {
			try {
				Item item = buildItem((FileUtils.readFile(file)));
				String missingKey = FileValidator.isValid(item, REQUIRED_KEYS);
				if (missingKey == null) {
					allItems.add(item);
				} else {
					System.out.println("Item file " + file.getName() + " missing key " + missingKey
							+ ". Failed to create object");
				}
			} catch (IOException | NoSuchMethodException | SecurityException
					| IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
				e.printStackTrace();
			}
		}

		for (Item item : allItems) {
			if (item.getRarity().equals(Rarity.COMMON)) {
				commonItems.add(item);
			}
			if (item.getRarity().equals(Rarity.UNCOMMON)) {
				uncommonItems.add(item);
			}
			if (item.getRarity().equals(Rarity.RARE)) {
				rareItems.add(item);
			}
			if (item.getRarity().equals(Rarity.EXTREMELY_RARE)) {
				extremelyRareItems.add(item);
			}
		}
	}