Cleaner button code allows for easier button addition; game state code reflects
merged with ryan's