Buttons

Intermediate push to update main with currently-working version of buttons. Buttons branch to remain open for further development.