list.append(fact.createDup(1));
list.append(InstructionFactory.createDup(1));
    private InstructionList initializeAllTjps() {    	InstructionList list = new InstructionList();    	InstructionFactory fact = getFactory();    	    	// make a new factory    	list.append(fact.createNew(factoryType));    	list.append(fact.createDup(1));    	    	list.append(new PUSH(getConstantPoolGen(), getFileName()));    	    	// load the current Class object    	//XXX check that this works correctly for inners/anonymous    	list.append(new PUSH(getConstantPoolGen(), getClassName()));    	//XXX do we need to worry about the fact the theorectically this could throw    	//a ClassNotFoundException    	list.append(fact.createInvoke("java.lang.Class", "forName", classType,    				new Type[] {Type.STRING}, Constants.INVOKESTATIC));    	    	list.append(fact.createInvoke(factoryType.getClassName(), "<init>",    				Type.VOID, new Type[] {Type.STRING, classType},    				Constants.INVOKESPECIAL));    				    	list.append(fact.createStore(factoryType, 0));    	    	List entries = new ArrayList(tjpFields.entrySet());    	Collections.sort(entries, new Comparator() {    		public int compare(Object a, Object b) {    			Map.Entry ae = (Map.Entry) a;    			Map.Entry be = (Map.Entry) b;    			return ((Field) ae.getValue())    				.getName()    				.compareTo(((Field)be.getValue()).getName());    		}    	});    	for (Iterator i = entries.iterator(); i.hasNext(); ) {    		Map.Entry entry = (Map.Entry)i.next();    		initializeTjp(fact, list, (Field)entry.getValue(), (BcelShadow)entry.getKey());    	}    	    	return list;    }