         className.replace(new RegExp("\\b#{ prefix }\\S+", 'g'), '').replace(/\s+/g, ' ')
 
 $ ->
-    drop.updateBodyClasses()
-
-    $(document).on 'openDrop.drop, closeDrop.drop', (event) -> drop.updateBodyClasses()
-
-    $(window).on 'resize', debounce(-> drop.positionAll())
-    $(window).on 'scroll.drop', debounce(-> drop.positionAll())
-
-drop =
+    Drop.updateBodyClasses()
+
+    $(document).on 'openDrop.drop, closeDrop.drop', (event) -> Drop.updateBodyClasses()
+
+    $(window).on 'resize', debounce(-> Drop.positionAll())
+    $(window).on 'scroll.drop', debounce(-> Drop.positionAll())
+
+Drop =
     baseClassNames:
         drop: 'drop'
         dropContent: 'drop-content'


        $([$target[0], options.$drop[0]]).each ->
            $el = $(@)
            removePrefixedClasses($el, drop.baseClassNames.attachPrefix)
            $el.addClass("#{ drop.baseClassNames.attachPrefix }#{ attachFirst }-#{ attachSecond }")

    positionDrop: ->
        $target = $ @

        $target.drop 'positionDrop'

        $target
            .addClass(Drop.baseClassNames.opened)
            .removeClass(Drop.baseClassNames.closed)

        options.$drop
            .addClass(Drop.baseClassNames.opened)
            .removeClass(Drop.baseClassNames.closed)

        options.$drop.trigger
            type: 'openDrop'
