generate button implemented