added factory for easier button making