         }
     }
     
+    /// Handles `PlayerDidCollide` `GameEvent`s
     func handlePlayerCollisionEvent(player: Player, xCoordinate: Int?) {
         player.run()
         let validToSend = isValidToSend(player)

class LogicEngine {

    // MARK: Properties
    private var dispatchTimer: dispatch_source_t?

    let state: GameState
    private let obstacleGenerator: ObstacleGenerator
    

        }
    }
    
    /// Handles `PlayerLost` `GameEvent`s
    func handlePlayerLostEvent(player: Player, timeStep occurrence: Int, score: Int) {
        if isValidToSend(player) {
            sendPlayerLostData(occurrence, score: score)
