complete generate