private Monopoly(Loader loader) {
		go = loader.getGo();
		jail = loader.getJail();
		playerHashMap = loader.getPlayerHashMap();
		serverOperator = new ServerOperator(this, loader);
		actions = new HashMap<Integer, HashMap<String, ActionThread>>();

		//The thread will set the next player as active and will then wait for him to finish his turn and sets the
		//next player active and waits ...
		//TODO Specify a timeout for a turn
		turnThread = new Thread(new Runnable() {
			@Override public void run() {
				Player previousPlayer = null;

				try {
					synchronized(turnThread) {
						while(!gameOver) {
							Iterator<Player> iterator = playerHashMap.values().iterator();
							while(iterator.hasNext()) {
								try {
									currentPlayer = iterator.next();
									currentPlayer.setTurnEnd(false);
									turnThread.wait();  //TODO possible replace with "Condition"
									previousPlayer = currentPlayer;
								} catch(ConcurrentModificationException e) {
									iterator = playerHashMap.values().iterator();
									while(iterator.hasNext()) {
										if(iterator.next().equals(previousPlayer)) {
											break;
										}
									}
								}
							}
						}
					}
				} catch(InterruptedException e) {
					e.printStackTrace();
				}
			}
		});
		turnThread.setName("Turn thread");
	}