Rejigged the button constructor to handle different scenarios.