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

		for (Action action : allActions) {
			if (action.getRarity().equals(Rarity.COMMON)) {
				commonActions.add(action);
			}
			if (action.getRarity().equals(Rarity.UNCOMMON)) {
				uncommonActions.add(action);
			}
			if (action.getRarity().equals(Rarity.RARE)) {
				rareActions.add(action);
			}
			if (action.getRarity().equals(Rarity.EXTREMELY_RARE)) {
				extremelyRareActions.add(action);
			}
		}
	}