buttons and slight refactor