public static GameBoard createBoardFromReadout(String readout){
	  System.out.println(readout);
	  GameBoard board = new GameBoard();

	  String[] valuesSets = readout.split("##");

	  String [] locations = valuesSets[0].split(" ");
	  String [] flags = valuesSets[1].split(" ");
	  
	  GamePieceName pieceName = null;
	  BoardLocation location = null;
	  for (String token : locations){
	    try{
	      pieceName = GamePieceName.valueOf(token);
	      
	      location = null;
	    } catch (IllegalArgumentException x){
	      
	      System.out.println("location? " + token);
	      if (token != null && !token.equals("")) {
	        location = BoardLocation.valueOf(token);  
	      }
	    }
	    if (location !=null){
	      board.placePieceAtLocation(pieceName, location);
	    }
	  }
	  Piece piece = null;
	  boolean flagVal = false;
	  boolean complete = false;
	  for (String token : flags){
	    if (token.equals("")){
	      continue;
	    }
	    try{
	      
	      token = token.replaceAll("\\(.*\\)", "");
        pieceName = GamePieceName.valueOf(token);
        piece = board.getPieceByName(pieceName);
        complete = false;
      } catch (IllegalArgumentException x){
        flagVal = Boolean.parseBoolean(token);
        complete = true;
      }
	    if (complete) {
	      piece.setHasMoved(flagVal);
	    }
    }
	  
  return board;
}