public List<ShipAction> getTurn(Integer turnCount) throws ConnectionLostException {
		try {
			/*
			 * check to see if something is arrived in time. Otherwise, assume
			 * no input. 
			 */
			@SuppressWarnings("unchecked")
			Integer returnedTurnCount = (Integer)socket.readObject(false);
			if (returnedTurnCount == null) { // Player has not returned ship actions yet
				return new LinkedList<ShipAction>();
			}
			while (!(turnCount.equals(returnedTurnCount))) { // Player returned a diff turn than expected
				
				List<ShipAction> invalidTurn = (List<ShipAction>)socket.readObject(false);
				System.out.println("Expected: " + turnCount + " Played Returned Turn Num: " + returnedTurnCount);
				returnedTurnCount = (Integer)socket.readObject(false);
				if (returnedTurnCount == null) { // Second check for 
					return new LinkedList<ShipAction>();
				}
			}
			List<ShipAction> temp = (List<ShipAction>)socket.readObject(false);
			// check that list is not null
			if (temp == null)
				return new LinkedList<ShipAction>();
			// validate that no ships in returned list are null
			for (ShipAction c : temp) {
				if (c == null)
					return new LinkedList<ShipAction>();
			}
			return temp;
			
		} catch (ClassCastException e) {
			// Someone is trying to break our server or, our code is really broken.
			// TODO: handle invalid input
		} catch (ConnectionLostException e) {			
			// TODO: handle invalid input
		}
		return new LinkedList<ShipAction>();
	}