(function(){
	'use strict';

	window.Fasterclick = {

		//main method
		attach: function(element, callback) {

			//generate uid to store element, callback, touch_counter in cache
			var uid = 1;

			//construct Function() element event wrapper that calls cache with uid
			var touch_wrapper = Function('');
			var click_wrapper = Function('');

			//attach event wrappers to element
			element.addEventListener('touch', touch_wrapper);
			element.addEventListener('click', click_wrapper);

		},

		//reference caches
		elements: [],
		callbacks: [],
		touch_counters: [],

		//misc. helpers
		latest_uid: 0

	};
})();

@@ -190,9 +190,63 @@
 d = 
-1
+Fasterclick.latest_uid + 1;%0A%09%09%09Fasterclick.latest_uid++
 ;%0A%0A%09
@@ -351,20 +351,76 @@
 nction('
+event', 'Fasterclick.touchHandler(event, %22' + uid + '%22)
 ');%0A
+%0A
 %09%09%09var c
@@ -444,18 +444,220 @@
 nction('
-')
+event', 'Fasterclick.clickHandler(event, %22' + uid + '%22)');%0A%0A%09%09%09//store element callback and counter info in cache using uid%0A%09%09%09Fasterclick.callbacks%5Buid%5D = callback;%0A%09%09%09Fasterclick.touch_counters%5Buid%5D = 0
 ;%0A%0A%09%09%09//
@@ -802,16 +802,145 @@
 %0A%0A%09%09%7D,%0A%0A
+%09%09//event handlers%0A%09%09touchHandler: function(event, uid) %7B%0A%09%09%09//TODO%0A%09%09%7D,%0A%0A%09%09clickHandler: function(event, uid) %7B%0A%09%09%09//TODO%0A%09%09%7D,%0A%0A
 %09%09//refe
@@ -956,24 +956,8 @@
 hes%0A
-%09%09elements: %5B%5D,%0A
 %09%09ca

use Function() constructor to call event handlers