Refactoring and adding Button widget