private Module spaKspaRProductionModule()
		 {
		  ComponentInstantiation pspaRKPromoterComp_sig = new DnaComponentInstantiation(
				      URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/pspaRK_promoter"),
				      "pspaRK_promoter",
				      pspaRKPromoterComp
				    );

			 Port pspaRKPromoterComp_port= new Port(
				      URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/pspaRK_promoter_port"),
				      "pspaS_promoter_port",
				      pspaRKPromoterComp_sig);
			
			 ProteinEncodingCdsModule spaKTranslationModule=getProteinEncodingCDSModule("SpaK_module", "SpaK_CDS", "SpaK_Protein");		

			 ComponentInstantiation spaKCDS_sig = new DnaComponentInstantiation(
				      URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/SpaK_CDS"),
				      "SpaK_CDS",
				      spaKCDSComp);
			 
			 ProteinEncodingCdsModule spaRTranslationModule=getProteinEncodingCDSModule("SpaR_module", "SpaR_CDS", "SpaR_Protein");		

			 ComponentInstantiation spaRCDS_sig = new DnaComponentInstantiation(
				      URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/SpaR_CDS"),
				      "SpaR_CDS",
				      spaRCDSComp);
			 
			 
			 Participation participationPromoter =new Participation(
		              URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/transcription/promoter"),
		              URI.create("http://purl.obolibrary.org/obo/SO_0000167"),
		              pspaRKPromoterComp_sig);
			 Participation participationSpaKCDS=new  Participation(
		              URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/transcription/cds"),
		              URI.create("http://www.ebi.ac.uk/sbo/main/SBO:0000310"), // SBO:CDS
		              spaKCDS_sig);   
			 
			 Participation participationSpaRCDS=new  Participation(
		              URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/transcription/cds"),
		              URI.create("http://www.ebi.ac.uk/sbo/main/SBO:0000310"), // SBO:CDS
		              spaRCDS_sig);   
			 
		     Interaction interaction=new Interaction( 
		     		URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/transcription"),
		     		"transcription",
		     		URI.create("transcription"),
		     		new ArrayList<Participation>(Arrays.asList(participationPromoter,participationSpaKCDS,participationSpaRCDS)));
		     
		     ModuleInstantiation subModuleSpaK=new ModuleInstantiation(
		    	        URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/gfp_translation_module"),
		    	        "gfp_translation_module",
		    	        spaKTranslationModule.getModule());
		    
		     ModuleInstantiation subModuleSpaR=new ModuleInstantiation(
		    	        URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/gfp_translation_module"),
		    	        "gfp_translation_module",
		    	        spaRTranslationModule.getModule());
		    
		     PortMap portMapSpaK=new PortMap(
		             URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/transcription/cds:cds"),
		             spaKTranslationModule.CDSport,
		             spaKCDS_sig);
		     
		     PortMap portMapSpaR=new PortMap(
		             URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module/transcription/cds:cds"),
		             spaRTranslationModule.CDSport,
		             spaRCDS_sig);
		           
		     		     
		     Module module=new Module(
		    	     URI.create("http://turingatemyhamter.co.uk/example#GFP_production_module"),
				      "GFP_production_module");
		     for (ComponentInstantiation signal : new ArrayList<ComponentInstantiation>(Arrays.asList(pspaRKPromoterComp_sig,spaKCDS_sig,spaRCDS_sig)))
		    	 module.addComponentInstantiation(signal);
		     for (Port port : new ArrayList<Port>(Arrays.asList(pspaRKPromoterComp_port)))
		    	 module.addPort(port);
		     for (Interaction inter : new ArrayList<Interaction>(Arrays.asList(interaction)))
		    	 module.addInteraction(inter);
		     for (ModuleInstantiation modi : new ArrayList<ModuleInstantiation>(Arrays.asList(subModuleSpaK,subModuleSpaR)))
		    	 module.addSubModuleInstantiation(modi);
		     
		     //TODO module.setPortMaps(new ArrayList<PortMap>(Arrays.asList(portMapSpaK,portMapSpaR)));	     	     
		     for (PortMap pmap : new ArrayList<PortMap>(Arrays.asList(portMapSpaK)))
		    	 subModuleSpaK.addPortMap(pmap);
		     for (PortMap pmap : new ArrayList<PortMap>(Arrays.asList(portMapSpaR)))
		    	 subModuleSpaR.addPortMap(pmap);   	     
		     
			return module;									
		 }