Button refactor