   addEmbedHiddenItem:(item)=>
     if not (item in @embedHiddenItems) then @embedHiddenItems.push item
 
+  getRichEmbedWhitelist:=>
+    [
+      "SoundCloud"
+    ]
+
   fetchEmbed:(url="#",options={},callback=noop)=>
 
     requirejs ["http://scripts.embed.ly/jquery.embedly.min.js"], (embedly)=>

    # this menu exist

    if @options.hasDropdown
      menu =
        'Remove Preview'   :
          callback : =>
            @embedHiddenItems.push "embed"
            @refreshEmbed()
            @getDelegate()?.emit "embedHideItem", @embedHiddenItems
            no

      return menu


                <a class="preview_link_switch previous #{if @getEmbedImageIndex() is 0 then "disabled" else ""}">&lt;</a><a class="preview_link_switch next #{if @getEmbedImageIndex() is @getEmbedData()?.images?.length then "disabled" else ""}">&gt;</a>
                <div class="thumb_count"><span class="thumb_nr">#{@getEmbedImageIndex()+1 or "1"}</span>/<span class="thumb_all">#{data?.images?.length}</span> <span class="thumb_text">Thumbs</span></div>
              </div>
            """
            # uses the settingsMenu as an array, adding these links after the
            # default "remove"
            if data?.images?[0]? then @settingsButton?.options?.menu?.push

                'Remove Image from Preview' :
                  callback : =>
                    @addEmbedHiddenItem "image"
                    @refreshEmbed()
                    @getDelegate()?.emit "embedHideItem", @embedHiddenItems
                    no

            if data?.description? then @settingsButton?.options?.menu?.push

                'Remove Description from Preview'   :
                  callback : =>
                    @embedHiddenItems.push "description"
                    @refreshEmbed()
                    @getDelegate()?.emit "embedHideItem", @embedHiddenItems
                    no

          # this can be audio or video files
          else
            html = "Embedding #{data.type or "unknown"} content like this is not supported."

        # embedly supports many error types. we could display those to the user
        when "error"
