function attachSelfAsPlugin ($) {
		if (!$.fn || $.fn.seeThru) { return; }

		$.fn.seeThru = function () {
			var args = slice(arguments);
			var head = args.shift();
			return this.each(function () {
				var self = this;
				var $this = $(this);
				if (args.length === 0) {
					if ($this.data('seeThru')) { return; }
					$this.data('seeThru', new SeeThru(this, head)._init());
				} else if (toString(head) === '[object String]') {
					if (!$this.data('seeThru')) { return; }
					// all methods other then init will be deferred until `.ready()`
					$this.data('seeThru').ready(function () {
						$this.data('seeThru')[head].apply(self, args);
						if (head === 'revert') {
							$this.data('seeThru', null);
						}
					});
				}
			});
		};
	}
make the script available as a plugin on the passed jQuery instance
@param {jQuery} $