improved startNewRound with delegation/observer