implementing SuperButton