Refactoring and cleanup. Button functionality is now wrapped in a new
class. Will simplify adding a second controlled button.