public void start() throws InstantiationException, IllegalAccessException{

    	//new intance
    	for(Class<? extends IModule> clazz:classSet){
    		IModule module=(IModule)clazz.newInstance();
    		this.moduleSet.add(module);
    	}
    	//init context
    	for(IModule module:moduleSet){
    		moduleContext.addModule(module);
    		for(Entry<Class<? extends ISimpleService>,ISimpleService> e:module.getServiceImpls().entrySet()){
    			moduleContext.addService(e.getKey(), e.getValue());
    		}
    	}
    	//module start
    	for(IModule module:moduleSet){
    		module.init(moduleContext);
    	}
    	for(IModule module:moduleSet){
    		module.startUp(moduleContext);
    	}
    }