refactored gamestates to use enums instead of types