make button creation versatile

dirty but works, will clean up asap