Button widget refactors.