update button mixin to latest practices