add a function that can add custom button with block