anchor.diff:              else
                   true
           )
  -        this.WebView.LoadRequest(new NSUrlRequest(new NSUrl(Api.webUrl + "/mobile/chat/game/" + slug)))
  +
  +        this.WebView.LoadRequest(new NSUrlRequest(new NSUrl(Api.webUrl + "/mobile/chat/game/" + entity.Slug)))
  +
  +        #if DEBUG
  +        let refresh = new UIRefreshControl()
  +        refresh.ValueChanged.Add(fun e -> 
  +            this.WebView.LoadRequest(new NSUrlRequest(new NSUrl(Api.webUrl + "/mobile/chat/game/" + entity.Slug)))
  +            refresh.EndRefreshing()
  +        )
  +        this.WebView.ScrollView.AddSubview refresh
  +        #endif
  +
  +        Async.Start(Utility.Timer.ticker (fun _ -> this.InvokeOnMainThread(fun _->  
  +            if events.Count > 0 then
  +                let eventsBuilder = new System.Text.StringBuilder()
  +                for (event, json) in events do
  +                    let json = sprintf "[%i,%i,%i,%s,'%s']" event.Sequence event.EventType event.Stamp json event.User
  +                    eventsBuilder.AppendLine (sprintf "wireclub.Channel.processChannelEvents('%s', %s);" entity.Id json) |> ignore
  +
  +                printfn "processed %i" events.Count
  +                this.WebView.EvaluateJavascript (eventsBuilder.ToString()) |> ignore
  +                events.Clear()
  +        )) 500)
  +
  +    member this.ProcessEvent(event:ChannelEvent) =
  +        match event.Event with
  +        | BingoRoundChanged json
  +        | BingoRoundDraw json
  +        | BingoRoundWon json
  +        | AppEvent json
  +        | CustomAppEvent json -> events.Add (event, json)
  +        | _ -> ()
   
   [<Register ("ChatRoomUsersViewController")>]
   type ChatRoomUsersViewController (users:UserProfile[]) =
  
positive.code: 
  
  [<Register ("GameViewController")>]
  type GameViewController (slug:string, name:string) =
      inherit UIViewController ("GameViewController", null)
  
      [<Outlet>]
      member val WebView: UIWebView = null with get, set
  
negative.code:                         apps <- result.Channel.Apps
  
                          if apps.Any(fun e -> appsAllowed.Contains(e)) then
                              gameController <- Some (new GameViewController(room, apps.First()))
  
                          this.NavigationItem.RightBarButtonItems <- barButtons()
  
  