add PushButton interface