put button code into a mixin