         print("Authenticating local user...")
         if GKLocalPlayer.localPlayer().authenticated == false {
             GKLocalPlayer.localPlayer().authenticateHandler = { (view, error) in
-                if error == nil {
-                    self.authenticated = true
-                } else {
-                    print("\(error?.localizedDescription)")
+                guard error == nil else {
+                    print("Authentication error: \(error?.localizedDescription)")
+                    return
                 }
+                
+                self.authenticated = true
             }
         } else {
             print("Already authenticated")

        let scoreObject = GKScore(leaderboardIdentifier: identifier)
        scoreObject.value = Int64(score)
        GKScore.reportScores([scoreObject]) { (error) -> Void in
            if error != nil {
                print("Error in reporting leaderboard scores: \(error)")
            }
        }
    }

        let playerIDs = match.players.map { $0.playerID } as! [String]
        
        GKPlayer.loadPlayersForIdentifiers(playerIDs) { (players, error) -> Void in
            guard error == nil else {
                print("Error retrieving player info: \(error?.localizedDescription)")
                self.matchStarted = false
                self.delegate?.matchEnded()
                return
            }
            
            guard let players = players else {
                print("Error retrieving players; returned nil")
                return
            }
            
            for player in players {
                print("Found player: \(player.alias)")
                self.playersDict[player.playerID!] = player
            }
            
            self.matchStarted = true
            GKMatchmaker.sharedMatchmaker().finishMatchmakingForMatch(self.match)
            self.delegate?.matchStarted()
        }
    }
    
