public synchronized void coordinatorMsgRecived(CoordinatorUpdateMsg msg)
	{
		System.out.println("Reciving update from Coordinator: " + msg.from + "  newFn: " + msg.newFrameNumber + " tankCount: " + (msg._tanks != null ? msg._tanks.length : -1));
		//coordinatorUpdateMsg(msg);
		
		//CoordinatorLeave
		if(msg._tanks == null)
			recivedLeaveMsg(msg.from);
		else
		{
			//not started 
			if(msg.newFrameNumber < this.frameNumber) {
				hasMoved = false;
				return;
			}
			else
				started = true;
			
			if(_coordinatorIds.containsKey(msg.from)) {
				CoordinatorInfo cInfo = _coordinatorIds.get(msg.from);
				cInfo.frameNumber = msg.newFrameNumber;
				cInfo.setUpdateMsg(msg);
			}
			else {
				_coordinatorIds.put(msg.from, new CoordinatorInfo(msg.newFrameNumber, msg));
				System.out.println("------ adding new coordinator!");
			}
		}
			
		if(allAnswersRecived()) {
			coordinatorUpdateMsg(chooseCoordinatorAnswer());
		}
	}