public List<IceCream> produceAllKnownIceCream(){
		List<IceCream> list = new ArrayList<IceCream>();

		
		for(Class<? extends IceCream> ice: getAllIceCreamTypes()){
			for(Taste taste: getSomeTaste()){
				//IceCream ice = new IceCream(taste, type);
				try {
					list.add(ice.getDeclaredConstructor(Taste.class).newInstance(taste));
				} catch (SecurityException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (NoSuchMethodException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (InstantiationException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (InvocationTargetException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
		
		return list;
	}