public void nextTurn() {

	  //Check For Winner
	  if(isWinner()){
		  return;
	  }
	  
	  playerInTurn = turnDeterminer.nextTurn();
	  
	  //Roll Dice
	  diceRollDeterminer.rollDice();
	  int[] dRoll = diceRollDeterminer.getDiceRoll();
	  
	  if(turns == 0){
		  while(dRoll.length > 2){
			  diceRollDeterminer.rollDice();
			  dRoll = diceRollDeterminer.getDiceRoll();
		  }
		  playerInTurn = determineStartingPlayer(dRoll);
		
	  }
	  
	  //Create diceRoll 
	  if(dRoll.length == 2){
		  diceRoll = new ArrayList<Integer>(Arrays.asList(dRoll[0], dRoll[1])) ;
	  }
	  else{
		  diceRoll = new ArrayList<Integer>(Arrays.asList(dRoll[0], dRoll[1], dRoll[2], dRoll[3])) ;
	  }
	  
	  turns++;
	  movesLeft = diceRoll.size();
	  
	  String statusMessage = "";
	  if(turns == 1){
		  statusMessage = playerInTurn.toString() + " rolled the highest value! ";
	  }
	  
	  //Notify Observers
	  statusMessage += getPlayerInTurn().toString() + " has "+ getNumberOfMovesLeft() +" moves left...";
	  notifyObserversOfNewStatus(statusMessage);
	  notifyObserversOfDiceRolled(diceThrown());
	  

	  //Added
	  
	  this.turnMoves = new ArrayList<MoveRecord>();
	  for(int i = 0; i < movesLeft; i++){
		  this.turnMoves.add(new MoveRecord());
	  }
	  this.turnMovesIdx = 0;
	  
	  //

	  
  }