better generate button