add TextButton and change Button class to abstract