abstracting the way buttons work