-wxDEFINE_EVENT( wxEVT_COMMAND_WEB_VIEW_NAVIGATING, wxWebViewEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_WEB_VIEW_NAVIGATED, wxWebViewEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_WEB_VIEW_LOADED, wxWebViewEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_WEB_VIEW_ERROR, wxWebViewEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_WEB_VIEW_NEWWINDOW, wxWebViewEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED, wxWebViewEvent );
+wxDEFINE_EVENT( wxEVT_COMMAND_WEBVIEW_NAVIGATING, wxWebViewEvent );
+wxDEFINE_EVENT( wxEVT_COMMAND_WEBVIEW_NAVIGATED, wxWebViewEvent );
+wxDEFINE_EVENT( wxEVT_COMMAND_WEBVIEW_LOADED, wxWebViewEvent );
+wxDEFINE_EVENT( wxEVT_COMMAND_WEBVIEW_ERROR, wxWebViewEvent );
+wxDEFINE_EVENT( wxEVT_COMMAND_WEBVIEW_NEWWINDOW, wxWebViewEvent );
+wxDEFINE_EVENT( wxEVT_COMMAND_WEBVIEW_TITLE_CHANGED, wxWebViewEvent );
+
+wxStringWebViewFactoryMap wxWebView::m_factoryMap;
+
+// static
+wxWebView* wxWebView::New(const wxString& backend)
+{
+    wxStringWebViewFactoryMap::iterator iter = FindFactory(backend);
+
+    if(iter == m_factoryMap.end())
+        return NULL;
+    else
+        return (*iter).second->Create();
+}
+
+// static
+wxWebView* wxWebView::New(wxWindow* parent, wxWindowID id, const wxString& url,
+                          const wxPoint& pos, const wxSize& size, 
+                          const wxString& backend, long style, 
+                          const wxString& name)
+{
+    wxStringWebViewFactoryMap::iterator iter = FindFactory(backend);
+
+    if(iter == m_factoryMap.end())
+        return NULL;
+    else
+        return (*iter).second->Create(parent, id, url, pos, size, style, name);
+
+}