Buttons have their own class and are kept in a ArrayList loads of new and compressed code