@Override
	public void option() {
		int cores = Runtime.getRuntime().availableProcessors();
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		if (this.operand.equals("random"))
		{
			Random r = new Random(new Date().getTime());
			int tasks = r.nextInt(15) + 1;
			Config.getInstance().threads(tasks);
			System.out.println("Running with " + tasks + " worker threads");
			return;
		}
		if (this.operand.equals("cores"))
		{
			System.out.println("Running with " + cores + " worker treads");
			Config.getInstance().threads(cores);
			return;
		}
		try {
			int tasks = Integer.parseInt(this.operand);
			if (tasks == 0)
				tasks = 1;
			else if (tasks > cores * max_factor)
			{
				System.out.println("You are attempting to run " + max_factor + " times more threads than you have cores available");
				System.out.println("Are you certain you don't want to scale down to " + (cores * max_factor) + " threads? (y/N)");
				String ret = input.readLine().toLowerCase();
				if (!(ret.equals("y") || ret.equals("yes")))
				{
					System.out.println("Setting the number of tasks to " + (cores * max_factor));
					tasks = cores * max_factor;
				}
			}
			Config.getInstance().threads(tasks);
		} catch (NumberFormatException e)
		{
			System.err.println("Operand " + this.operand + " to -t or --tasks is not a valid number!");
			System.exit(ErrorCode.OPTION_UNSPECIFIED);
		} catch (IOException e) {
			System.err.println("System input broke somehow ...");
			System.exit(ErrorCode.GENERIC);
		}
	}