implement game states