refactor the Button a bit and add a ToggleButton