added callbacks to button