changed gamestate to enum and stuff