public Game read() 
  {
    //FILL IN THE CODE:
    //Declare Game object and set to null 
  	Game game = null;
    //Declare an ObjectInputStream object and set it to null
  	ObjectInputStream in = null;
    //Note that it will read in entire game object at a time

    try 
    {
      //Instantiate ObjectInputStream object using new FileInputStream object
    	in = new ObjectInputStream(new FileInputStream(file));
      //  wrapped around file object (instance variable above)
    	//Note that this is an example of the decorator design pattern
      
      //Set Game object to result of readObject() operation
    	game = (Game)in.readObject();
    	
      try
      {
        //leave blank
      }
      finally //Close stream if created
      {
        //if ObjectInputStream object isn't null
      	if(in != null)
      		in.close(); //  close ObjectInputStream
      }
    }
    catch (ClassNotFoundException e)
    {
      e.printStackTrace();
    	log.info(e.getCause().toString());
      JOptionPane.showMessageDialog
                  (null, "Read failed:  not a valid Game file");
    }
    catch (IOException e)
    {
      e.printStackTrace();
    	log.info(e.getCause().toString());
      JOptionPane.showMessageDialog(null, "Open failed:  IOException");
    }
    return game;
  }