private static void populateSMBL(SysBioMarkLang smbl, SpeciePool species, Program program) {
		smbl.setModel(new Model());
		smbl.getModel().setId("GPGeneratedModel");
			
		Species[] listOfSpecies = new Species[species.getSpecies().size()];
		smbl.getModel().setListOfSpecies(listOfSpecies);
		for(Specie s: species.getSpecies()){
			int index = species.getSpecies().indexOf(s);
			Species newSpecies = new Species();
			smbl.getModel().getListOfSpecies()[index] = newSpecies;
			smbl.getModel().getListOfSpecies()[index].setId(s.toString());
			smbl.getModel().getListOfSpecies()[index].setInitialAmount(species.getSpecieConcentration(s).toString());
		}

		Parameter[] listOfParameters = new Parameter[program.getReactionNo()];
		smbl.getModel().setListOfParameters(listOfParameters);
		
		Reaction[] listofReactions = new Reaction[program.getReactionNo()];
		smbl.getModel().setListOfReactions(listofReactions);
		
		for(ro.ubb.biochem.reaction.components.Reaction r: program.getReactions()){
			int index = program.getReactions().indexOf(r);
			
			Parameter newParameter = new Parameter();
			smbl.getModel().getListOfParameters()[index] = newParameter;
			smbl.getModel().getListOfParameters()[index].setId("k"+index);
			smbl.getModel().getListOfParameters()[index].setValue(r.getKineticRate().toString());
			
			Reaction newReaction = new Reaction();
			smbl.getModel().getListOfReactions()[index] = newReaction;
			smbl.getModel().getListOfReactions()[index].setId("r"+index);
			
			SpeciesReference[] listOfReactants = new SpeciesReference[r.getPattern().getLhs().size()];
			smbl.getModel().getListOfReactions()[index].setListOfReactants(listOfReactants);
			
			for(Specie reactant: r.getPattern().getLhs()){
				int rIndex = r.getPattern().getLhs().indexOf(reactant);
				smbl.getModel().getListOfReactions()[index].getListOfReactants()[rIndex] = new SpeciesReference();
				smbl.getModel().getListOfReactions()[index].getListOfReactants()[rIndex].setSpecies(reactant.toString());
			}
			
			SpeciesReference[] listOfProducts = new SpeciesReference[r.getPattern().getRhs().size()];
			smbl.getModel().getListOfReactions()[index].setListOfProducts(listOfProducts);
			for(Specie product: r.getPattern().getRhs()){
				int pIndex = r.getPattern().getRhs().indexOf(product);
				smbl.getModel().getListOfReactions()[index].getListOfProducts()[pIndex] = new SpeciesReference();
				smbl.getModel().getListOfReactions()[index].getListOfProducts()[pIndex].setSpecies(product.toString());
			}

			smbl.getModel().getListOfReactions()[index].setKineticLaw(new KineticLaw());
			smbl.getModel().getListOfReactions()[index].getKineticLaw().setMath(new Math());
			smbl.getModel().getListOfReactions()[index].getKineticLaw().getMath().setApply(new Apply());
			
			String[] ci = new String[1 + r.getPattern().getLhs().size()];
			smbl.getModel().getListOfReactions()[index].getKineticLaw().getMath().getApply().setCi(ci);
			smbl.getModel().getListOfReactions()[index].getKineticLaw().getMath().getApply().getCi()[0] = "k"+index;
			for(Specie reactant: r.getPattern().getLhs()){
				int rIndex = r.getPattern().getLhs().indexOf(reactant) + 1;
				smbl.getModel().getListOfReactions()[index].getKineticLaw().getMath().getApply().
							getCi()[rIndex] = reactant.toString();
			}
			
		}
		
		
		
		
	}