public static void Authenticate (this KZApplication application, KZApplication.OnEventHandler onAuthFinish)
		{
			PassiveAuthSettings = new Dictionary<string, string>();
			if (!application.Initialized) application.Initialize ().Wait ();

			KidozenApplicationConfig = application.ApplicationConfiguration;

			PassiveAuthSettings.Add ("grant_type", "refresh_token");
			PassiveAuthSettings.Add ("client_secret", application.applicationKey);
			PassiveAuthSettings.Add ("client_id", Validate (KidozenApplicationConfig, "domain"));
			PassiveAuthSettings.Add ("scope", Validate (KidozenApplicationConfig.Value<JObject> ("authConfig"), "applicationScope"));
			PassiveAuthSettings.Add ("oauthTokenEndpoint", Validate (KidozenApplicationConfig.Value<JObject> ("authConfig"), "oauthTokenEndpoint"));

			var signInUrl = Validate (KidozenApplicationConfig.Value<JObject> ("authConfig"), "signInUrl");
			var authController = new PassiveAuthViewController (signInUrl);
			var wv = new UINavigationController (authController);
			authController.AuthenticationResponseArrived+= (object sender, AuthenticationResponseEventArgs e) => {
				Console.WriteLine("*** Success : " + e.Success);
				application.Authenticated = e.Success;
				if(e.Success) {
					application.PassiveAuthenticationInformation = new Dictionary<string,string>( e.TokenInfo);
				}
				else {
					//TODO: display alert
				}
				if(onAuthFinish!=null) {
					onAuthFinish.Invoke(application, e);
				}
			};
			UIApplication.SharedApplication.Delegate.Window.RootViewController.PresentViewController (wv, true, 
				new NSAction(()=>{
					Console.WriteLine("loading");
				}));

			//OnPassiveAuthentication.Invoke(application, new PassiveAuthenticationEventArgs {Success=e.Success});
		}