             o.opts.onBeforeLoad(_this) if $.isFunction(o.opts.onBeforeLoad)
 
             # Initialize
-            o.el = $(el)
-            o.cloneEl = o.el.clone() # Reference to the old untouched element
+            o.el            = $ el
+            o.cloneEl       = o.el.clone() # Reference to the old untouched element
+            o.browserWindow = $ window
 
             o.opts.onLoad(_this) if $.isFunction(o.opts.onLoad)
 

            o.el.on "compress.#{ pluginName }", (e) ->
                current = $ this

                current.data(stateKey, 'compressed') if not _this.isCompressed()

                # set the compression logic here

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

                console.log _this.getState()

            o.el.on "decompress.#{ pluginName }", (e) ->
                current = $ this

                current.data(stateKey, 'decompressed') if _this.isCompressed()

                # set the decompression logic here

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

                console.log _this.getState()

            ($ window)
                .on("resize.#{ pluginName }", resize.main)
                .trigger "resize.#{ pluginName }"

            # execute custom code after the plugin has loaded
            o.opts.onAfterLoad(_this) if $.isFunction(o.opts.onAfterLoad)

        _this.getState = ->
            state = o.el.data stateKey

                            .trigger "compress.#{ pluginName }"
                else
                    if current.width() >= optimalWidth
                        if _this.isCompressed()
                            o.opts.onBeforeDecompress(_this) if $.isFunction(o.opts.onBeforeDecompress)

                            o.el
                                .removeClass(o.opts.wrappedClass)
                                .trigger "decompress.#{ pluginName }"
                    else
                        if not _this.isCompressed()
                            o.opts.onBeforeCompress(_this) if $.isFunction(o.opts.onBeforeCompress)

                            o.el
                                .addClass(o.opts.wrappedClass)
                                .trigger "compress.#{ pluginName }"

                return null

