button constructor with default values
size optimization