 
             # plugin keys ::start
             o.pluginKey = o.generateRandomKey()
-            o.stateKey  = "#{ pluginName.toLowerCase() }-state"
 
             # generate random key for resize event to prevent event namespace conflicts
             o.resizeKey = "resize.#{ pluginName }_#{ o.pluginKey }"


            o.resize = _.debounce(o.resize, o.opts.debounceTime) if o.opts.fixIEResize

            o.el.data o.stateKey, 'decompressed'

            # bind the element to a custom event named compress
            o.el.on "compress.#{ pluginName }", (e) ->
                current = $ this
                items   = current.children 'li'
                holder  = items.filter ".#{ o.opts.holder.class }"

                # set the state to compressed
                current.data o.stateKey, 'compressed'

                if holder.length is 0
                    holder = ($ "<li class=\"#{ o.opts.holder.class }\"><a href=\"#\">#{ o.opts.holder.text }</a><ul class=\"clearfix\" /></li>").insertAfter items.first()


            if o.windowWidth isnt o.browserWindow.width()
                if o.browserWindow.width() < o.windowWidth and o.optimalCrumbHeight isnt o.el.height()
                    o.compress()
                else
                    o.decompress()

                o.windowWidth = o.browserWindow.width()
