public void nextMove(int col){
		boolean gameOver=false;
		Player player=players.get(turn);
		if(player.getType()==PlayerType.Human)
		{
			if(isColumnFull(col)){
				fireShowErrorMessage("Column Full, retry");
				turn--;
				if(turn<0){
					turn+=numberOfPlayers;
				}
				fireUpdatePlayerDetails(players.get(turn));
			}
			else{
				int rowPointer=insert(col,player.getId());
				fireUpdateCell(rowPointer,col,board[rowPointer][col]);

			}
		}
		else{
			int choice=player.getMove();		
			int rowPointer=insert(choice,player.getId());
			fireUpdateCell(rowPointer,choice,board[rowPointer][choice]);
			
		}
		
		if(isWinner(player.getId())){
			fireUpdateText("Game Over");
			fireShowWinMessage(player);
			gameOver=true;
		}
		
		if(!gameOver&&isBoardFull()){
			fireUpdateText("Game Over");
			fireShowDrawMessage("Match drawn, Game Over");
			gameOver=true;
		}
		if(!gameOver){
			turn++;
			turn%=numberOfPlayers;
			fireUpdatePlayerDetails(players.get(turn));
			if(players.get(turn).getType()==PlayerType.Computer){
				nextMove(-1);
			}
		}
	}