@Override
			public void run() {
				
				buttons.getMinimax().addSelectionListener(new SelectionListener() {
						
						@Override
						public void widgetSelected(SelectionEvent e) {
							//get Minimax
							if(buttons.getMinimax().getText().contains("Run Minimax")){
								if(hint.getCombo1().getText().toString().contains("7")){
									depth = 7;
								}else{
									depth = Integer.parseInt(hint.getCombo1().getText());
								}
								if(hint.getCombo2().getText().toString().contains("F")){
									hintsNum = Integer.MAX_VALUE;
									buttons.getMinimax().setText("Stop Minimax");
								}else{
									hintsNum = Integer.parseInt(hint.getCombo2().getText());
								}
								
								userCommand  = 13;
								setChanged();
								notifyObservers("solve");
								board.setFocus();
								
							}else{
								buttons.getMinimax().setText("Run Minimax/Get Hints");
								userCommand  = 12;
								setChanged();
								notifyObservers();
								board.setFocus();
							}
		
						}
						
						@Override
						public void widgetDefaultSelected(SelectionEvent arg0) {
							
						}
				});
					
				buttons.getRestart().addSelectionListener(new SelectionListener() {
					
					@Override
					public void widgetSelected(SelectionEvent e) {
						//restart
						userCommand  = 5;
						setChanged();
						notifyObservers();
						board.setFocus();
					}
					
					@Override
					public void widgetDefaultSelected(SelectionEvent arg0) {
						
					}
				});
				
				buttons.getUndo().addSelectionListener(new SelectionListener() {
					
					@Override
					public void widgetSelected(SelectionEvent e) {
						//undo
						userCommand = 6;
						setChanged();
						notifyObservers();
						board.setFocus();
					}
					
					@Override
					public void widgetDefaultSelected(SelectionEvent arg0) {
						
					}
				});
				
				buttons.getSave().addSelectionListener(new SelectionListener() {
					
					@Override
					public void widgetSelected(SelectionEvent arg0) {
						//save
						userCommand = 7;
						String path = saveAction();
						if(path != null){
							setFileNamePath(path);
							setChanged();
							notifyObservers("save");
						}
						board.setFocus();
					}
					
					@Override
					public void widgetDefaultSelected(SelectionEvent arg0) {
						// TODO Auto-generated method stub
						
					}
				});
				
				buttons.getLoad().addSelectionListener(new SelectionListener() {
					
					@Override
					public void widgetSelected(SelectionEvent arg0) {
						//load
						userCommand = 8;
						String path = loadAction();
						if(path != null){
							setFileNamePath(path);
							setChanged();
							notifyObservers("load");
							board.setFocus();
						}
					}
					
					@Override
					public void widgetDefaultSelected(SelectionEvent arg0) {
						// TODO Auto-generated method stub
						
					}
				});
				
				buttons.getExit().addSelectionListener(new SelectionListener() {
					
					@Override
					public void widgetSelected(SelectionEvent arg0) {
						// EXIT
						shell.dispose();
						display.dispose();
						System.exit(0);
					}
					
					@Override
					public void widgetDefaultSelected(SelectionEvent arg0) {
						// TODO Auto-generated method stub
						
					}
				});
				
		/*		hint.getHintText().addVerifyListener(new VerifyListener() {
					
					@Override
					public void verifyText(VerifyEvent e) {
						e.doit = false;
						
						char ch = e.character;
						String text = ((Text) e.widget).getText();
						
						// allow only 0-9
						if (Character.isDigit(ch)){
							e.doit = true;
						}
						
						if(ch == '\b'){
							e.doit = true;							
						}
					}
				});
		*/	}