refactored multibutton