extracted TurnManager