class DoMain {

  public static void main (String[] args) {
     Garden plot; // a factory
     Garden plot_1; // a second reference

	  GardenMaker gfac; // a factory factory
	  GardenMaker gfac_1; // a second reference
     
	  gfac = GardenMaker.Instance();
	  gfac_1 = GardenMaker.Instance();
     if(gfac_1 == null) System.out.println("Factory Factory Singleton is already created"); 

	  plot = gfac.getGarden("Flower");
	  System.out.println("\nnew garden factory... flowers"); 
	  System.out.println(" >> shade: " + plot.getShade().getName());	  
     
	  plot_1 = gfac.getGarden("Flower");
     if(plot_1 == null) System.out.println("Factory Singleton is already created");   

	  plot = gfac.getGarden("Herb");	
	  System.out.println("\nnew garden factory... herbs");  
	  System.out.println(" >> shade: " + plot.getShade().getName());
	  System.out.println(" >> center: " + plot.getCenter().getName());
	  
	  plot = gfac.getGarden("default"); // default veggie
	  System.out.println("\nnew garden factory... vegetables"); 
	  System.out.println(" >> center: " + plot.getCenter().getName());

  }
}