generate now requires visible: true