private void redProcStrategy(Tilia x) {

		final Solver solver;

		if (this.redProcStrategy.equals(GameLogic.PROCESSING_STRATEGY.DYNAMIC_SOLVER)) {
			solver = new DynamicSolver(x.getSide());
		} else if (this.redProcStrategy.equals(GameLogic.PROCESSING_STRATEGY.RECURSIVE_SOLVER)) {
			solver = new RecursiveSolver();
		} else if (this.redProcStrategy.equals(GameLogic.PROCESSING_STRATEGY.SIMPLE_SOLVER)) {
			solver = new SimpleSolver();
		} else if (this.redProcStrategy.equals(GameLogic.PROCESSING_STRATEGY.GREEDY_SOLVER)) {
			solver = new GreedySolver();
		}
		// ADD other options here
		else {
			solver = null;
			System.err.println("Invalid processing strategy red");
			System.exit(-1);
		}

		final Tilia y = x;

		// everything should happen in this new thread block
		new Thread(new Runnable() {
			public void run() {
				long toAddScore = solver.getScore(y, calcCredits);
				thisObject.setRedToAddScore(toAddScore);
			}
		}).start();
	}