add the GamePlayer and refine the GameEvent mechanism