             
             guard
                 
-                let event:MConnectedEventProtocol = factoryEvent(
-                    log:log,
-                    timestamp:timestamp)
+                let router:Router = kRouterMap[
+                    log.logType],
+                let event:MConnectedEventProtocol = router(
+                    log,
+                    timestamp)
                 
-                else
+            else
             {
                 continue
             }

        return event
    }
    
    private class func factoryEvent(
        logGameSave:MVitaLinkLogProtocol,
        timestamp:String) -> MConnectedEventProtocol?
    {
        guard

extension MConnected
{
    private typealias Router = (
        (MVitaLinkLogProtocol,
        String) -> (MConnectedEventProtocol?))
    
    private static let kRouterMap:[
        MVitaLinkLogType:Router] = [
            MVitaLinkLogType.system:factorySystem,
            MVitaLinkLogType.gameSave:factoryGameSave]
    
    //MARK: private
    
    private class func factorySystem(
        log:MVitaLinkLogProtocol,
        timestamp:String) -> MConnectedEventProtocol?
    {
        guard
            
            let logSystem:MVitaLinkLogSystem = logSystem as? MVitaLinkLogSystem
            
        else
        {
            return nil
        }
