changed the way the button mixin works