 
             o.optimalCrumbHeight = _.max crumbHeights
 
-            o.compress() if o.optimalCrumbHeight isnt o.el.height()
+            if o.optimalCrumbHeight isnt o.el.height()
+                o.el
+                    .addClass(o.opts.wrappedClass)
+                    .trigger "compress.#{ pluginName }"
 
             if o.windowWidth isnt o.browserWindow.width()
                 if o.browserWindow.width() < o.windowWidth and o.optimalCrumbHeight isnt o.el.height()
-                    o.compress()
+                    o.el
+                        .addClass(o.opts.wrappedClass)
+                        .trigger "compress.#{ pluginName }"
                 else
-                    o.decompress()
+                    o.el
+                        .removeClass(o.opts.wrappedClass)
+                        .trigger "decompress.#{ pluginName }"
 
                 o.windowWidth = o.browserWindow.width()
 
             return null
-
-        o.compress = ->
-            o.el
-                .addClass(o.opts.wrappedClass)
-                .trigger "compress.#{ pluginName }"
-
-        o.decompress = ->
-            o.el
-                .removeClass(o.opts.wrappedClass)
-                .trigger "decompress.#{ pluginName }"
 
         o.getChildrenWidth = ->
             totalWidth = 0


                        if typeof width isnt "undefined" and (o.getChildrenWidth() + width) <= current.width()
                            releaseItems.unshift(crumb.detach().get(0))
                        else
                            return false

                    if releaseItems.length > 0
                        o.opts.onBeforeDecompress(_this) if $.isFunction(o.opts.onBeforeDecompress)

                        o.opts.onDecompress(_this) if $.isFunction(o.opts.onDecompress)

                        holder.after ($ releaseItems)

                        o.opts.onAfterDecompress(_this) if $.isFunction(o.opts.onAfterDecompress)

                        if holder.find('ul > li').length is 0
                            holder.remove()


                hiddenItems = holder.find 'ul > li'

                if hiddenItems.length > 0
                    hiddenItems  = $ hiddenItems.get().reverse()
                    releaseItems = []

                    hiddenItems.each ->
