complete AbstractButton and NewButton classes