private ParkingSpace[] sendBestSpaces(XBeeAddress64 address) {
		
		// Gets a list of all spaces best spaces that exist
		ArrayList<ParkingSpace> trimmedSpaces = new ArrayList<>();
		for (int i = 0; i < this.destinations.size(); i++) {
			if (this.destinations.get(i).getBestSpace() != null) {
				trimmedSpaces.add(this.destinations.get(i).getBestSpace());
				this.destinations.get(i).getBestSpace().setAvailable(false);
			} // if - space exists
		} // for - put each best space into an array list
		
		// Pack best spaces into an array to be returned
		ParkingSpace[] bestSpaces = new ParkingSpace[trimmedSpaces.size()];
		for (int i = 0; i < trimmedSpaces.size(); i++)
			bestSpaces[i] = trimmedSpaces.get(i);
		
		int[] payload = new int[bestSpaces.length*4 + 1];
		payload[0] = 'D';
		for (int i = 0; i < bestSpaces.length; i++) {
			if (bestSpaces[i] != null) {
				payload[i*4 + 1] = (bestSpaces[i].getX() >> 8) & 0xFF;
				payload[i*4 + 2] = bestSpaces[i].getX() & 0xFF;
				payload[i*4 + 3] = (bestSpaces[i].getY() >> 8) & 0xFF;
				payload[i*4 + 4] = bestSpaces[i].getY() & 0xFF;
			} // if - space exists
		} // for - add coordinates to the payload
		
		ZNetTxRequest message = new ZNetTxRequest(address, payload);
		while(true) {
			try {
				ZNetTxStatusResponse response = (ZNetTxStatusResponse)this.xBee
						.sendSynchronous(message, 3000);
				if (response.isSuccess())
					break;
				else
					throw new XBeeException();
			} catch (XBeeException e) {
				continue; // Message failed, try again
			} // try-catch
		} // while - trying to send the message
		
		return bestSpaces;
	} // sendBestSpaces