refactoring of the b:button component