Add factory generate