public void update(){
		solver.interrupt();
		sp = new SearchPiece[pieces.size()];
		// 1=2 horizontal 2=3horizontal 3=2vertical 4=3vertical
		for(int i=0; i<pieces.size(); i++){
			int X = pieces.get(i).getX();
			int Y = pieces.get(i).getY();
			int d = pieces.get(i).direction();
			int size = pieces.get(i).length();
			int converted = 0;
			if(d == Piece.HORIZONTAL && size == 2){
				converted = 1;
			}else if(d == Piece.HORIZONTAL && size == 3)
			{
				converted = 2;
			}else if(d == Piece.VERTICAL && size == 2){
				converted = 3;
			}else{
				converted = 4;
			}
			System.out.println("Adding "+ i);
			sp[i] = new SearchPiece(X+1, Y+1, size, converted, i);
			sp[i].printPiece();
			sp[i].setBoardSize(rows);
		}
		BS2 = new BackgroundSolver2(sp);
		solver = new Thread(BS2);
		solver.start();
	}