Updated classes and new Button class