- support start and end game
- refactored