adding a better button generator mixin