         dispatch_resume(dispatchTimer!)
     }
     
+    /// Stops `LogicEngine`'s `dispatchTimer`
     func stopTick() {
         if let timer = dispatchTimer {
             dispatch_source_cancel(timer)

        gameNetworkPortal.send(.PlayerDidCollide, data: collisionData)
    }
    
    func sendPlayerLostData() {
        sendPlayerLostData(timeStep, score: state.distance)
    }

class LogicEngine {

    // MARK: Properties
    /// GCD dispatch source that runs LogicEngine in the background
    private var dispatchTimer: dispatch_source_t?
    
    let state: GameState
    private let obstacleGenerator: ObstacleGenerator
    
