Enhanced Button class