button has optional id
frame has optional id and title