       @content.replaceWith(@placeholder)
 
     addTab: (name) ->
-      {tabs} = uploadcare.widget
 
       if name of @tabs
         return
 
-      TabCls = switch name
-        when 'file' then tabs.FileTab
-        when 'url' then tabs.UrlTab
-        when 'facebook' then tabs.RemoteTabFor 'facebook'
-        when 'dropbox' then tabs.RemoteTabFor 'dropbox'
-        when 'gdrive' then tabs.RemoteTabFor 'gdrive'
-        when 'instagram' then tabs.RemoteTabFor 'instagram'
-        when 'vk' then tabs.RemoteTabFor 'vk'
-        when 'evernote' then tabs.RemoteTabFor 'evernote'
-        when 'box' then tabs.RemoteTabFor 'box'
-        when 'skydrive' then tabs.RemoteTabFor 'skydrive'
-        when 'preview' then (if @settings.multiple then tabs.PreviewTabMultiple else tabs.PreviewTab)
-        when 'welcome' then tabs.StaticTabWith 'welcome'
+      TabCls = registeredTabs[name]
 
       if not TabCls
         throw new Error("No such tab: #{name}")

    promise = utils.then(panel, filter, filter)
    promise.reject = panel.reject
    promise

  class Panel
    constructor: (@settings, placeholder, files, tab) ->

# = require ./tabs/base-source-tab
# = require ./tabs/file-tab
# = require ./tabs/url-tab
