docs: public void start() throws Exception{
  		if(cleanupDirectory){
  			CleanUp.start(conf);
  		}
  		IDatabaseDev db = (IDatabaseDev) em.getDB();//TODO make sure DB platform can be used for development
  		ModelDefinitionProvider provider = new ModelDefinitionProvider(db, conf.dbUser, null, conf.includeSchema);
  		ModelDef[] origModelList = provider.getTableDefinitions();
  		
  		new ModelMetaDataGenerator().start(origModelList, conf);
  		//TODO: proper support for explicit ModelDefinitions
  		ModelDef[] withExplecitList = overrideModelDefFromExplicit(origModelList, explicitMeta);
  		ModelDef[] modelList = correctModelList(withExplecitList);
  		
  		new DAOClassGenerator().start(modelList, conf, true, false);
  		new BeanGenerator().start(modelList, conf);
  		new MapperGenerator().start(modelList, conf);
  
  		ModelDef[] modelListOwned = setModelOwners(modelList, tableGroups);
  		ModelDef[] modelListChilded = setDirectChildren(modelListOwned);
  
  		new ColumnNameGenerator().start(modelListChilded, conf);
  		new TableNameGenerator().start(modelListChilded, conf);
  		new SchemaTableGenerator().start(modelListChilded, conf);
  		new TableColumnGenerator().start(modelListChilded, conf);
  		//new ModelMetaDataGenerator().start(modelListChilded, conf);
  		
  		new DAOInstanceFactoryGenerator().start(modelListChilded, conf);
  		new ModelToDAOConversionGenerator().start(modelListChilded, conf);
  	}