add buttons and functions