button constructor method