private void removePlayer(Player user, PlayerStatusData actionData) {
		//Cancel all trades that the player had - upon receiving player give up the client will remove the player
		// anyway
		for(ActionThread thread : actions.get(actionData.getUserId()).values()) {
			synchronized(thread) {
				if(thread.getActionData() instanceof HaggleData) {
					HaggleData haggleData = (HaggleData) thread.getActionData();
					haggleData.setHaggleState(HaggleData.HaggleState.DECLINE);
					serverOperator.sendHaggleData(haggleData);
				}
			}
		}
		//Set player to giveUp - a player event will be fired an the clients will be informed
		user.setGiveUp(true);

		//Remove from Server
		serverOperator.removeDestination(actionData.getUserId());

		//Set purchasables to be buyable again
		while(user.getProperties().size() != 0) {
			user.getProperties().get(0).setOwner(null);
		}

		//Put all cards back on the Cardstack
		for(Jailbreak card : user.getJailbreak()) {
			card.putBack();
		}

		//remove Player
		playerHashMap.remove(user.getPlayerId());

		//remove action HashMap
		actions.remove(user.getPlayerId());

		//move to the next player if the removed player is currently at turn
		if(currentPlayer.equals(user)) {
			synchronized(turnThread) {
				turnThread.notify();
			}
		}
	}